1700475750
}
1700475751
1700475752
理解上没有多少难度,不多说,继续看山寨公司的实现,如代码清单29-12所示。
1700475753
1700475754
代码清单29-12 山寨公司
1700475755
1700475756
public class ShanZhaiCorp extends Corp{
1700475757
1700475758
//产什么产品,不知道,等被调用的才知道
1700475759
1700475760
public ShanZhaiCorp(Product product){
1700475761
1700475762
super(product);
1700475763
1700475764
}
1700475765
1700475766
//狂赚钱
1700475767
1700475768
public void makeMoney(){
1700475769
1700475770
super.makeMoney();
1700475771
1700475772
System.out.println(“我赚钱呀……”);
1700475773
1700475774
}
1700475775
1700475776
}
1700475777
1700475778
HouseCorp类和ShanZhaiCorp类的区别是在有参构造的参数类型上,HouseCorp类比较明确,我就是只要House类,所以直接定义传递进来的必须是House类,一个类尽可能少地承担职责,那方法也一样,既然HouseCorp类已经非常明确地只生产House产品,那为什么不定义成House类型呢?ShanZhaiCorp就不同了,它确定不了生产什么类型。
1700475779
1700475780
好了,两大对应的阵营都已经产生了。我们再看Client程序,如代码清单29-13所示。
1700475781
1700475782
代码清单29-13 场景类
1700475783
1700475784
public class Client{
1700475785
1700475786
public static void main(String[]args){
1700475787
1700475788
House house=new House();
1700475789
1700475790
System.out.println(”––-房地产公司是这样运行的––-“);
1700475791
1700475792
//先找到房地产公司
1700475793
1700475794
HouseCorp houseCorp=new HouseCorp(house);
1700475795
1700475796
//看我怎么挣钱
1700475797
1700475798
houseCorp.makeMoney();
1700475799
[
上一页 ]
[ :1.70047575e+09 ]
[
下一页 ]