1700454730
1700454731
aug.shoot();
1700454732
1700454733
}
1700454734
1700454735
}
1700454736
1700454737
狙击手,为什么叫Snipper?Snipe翻译过来就是鹬,就是“鹬蚌相争,渔人得利”中的那只鸟,英国贵族到印度打猎,发现这个鹬很聪明,人一靠近就飞走了,没办法就开始伪装、远程精准射击,于是乎Snipper就诞生了。
1700454738
1700454739
狙击手使用狙击枪来杀死敌人,业务场景Client类的源代码如代码清单2-9所示。
1700454740
1700454741
代码清单2-9 狙击手使用AUG杀死敌人
1700454742
1700454743
public class Client{
1700454744
1700454745
public static void main(String[]args){
1700454746
1700454747
//产生三毛这个狙击手
1700454748
1700454749
Snipper sanMao=new Snipper();
1700454750
1700454751
sanMao.setRifle(new AUG());
1700454752
1700454753
sanMao.killEnemy();
1700454754
1700454755
}
1700454756
1700454757
}
1700454758
1700454759
狙击手使用G3杀死敌人,运行结果如下所示:
1700454760
1700454761
通过望远镜察看敌人……
1700454762
1700454763
AUG射击……
1700454764
1700454765
在这里,系统直接调用了子类,狙击手是很依赖枪支的,别说换一个型号的枪了,就是换一个同型号的枪也会影响射击,所以这里就直接把子类传递了进来。这个时候,我们能不能直接使用父类传递进来呢?修改一下Client类,如代码清单2-10所示。
1700454766
1700454767
代码清单2-10 使用父类作为参数
1700454768
1700454769
public class Client{
1700454770
1700454771
public static void main(String[]args){
1700454772
1700454773
//产生三毛这个狙击手
1700454774
1700454775
Snipper sanMao=new Snipper();
1700454776
1700454777
sanMao.setRifle((AUG)(new Rifle()));
1700454778
1700454779
sanMao.killEnemy();
[
上一页 ]
[ :1.70045473e+09 ]
[
下一页 ]