1700475734
public HouseCorp(House house){
1700475735
1700475736
super(house);
1700475737
1700475738
}
1700475739
1700475740
//房地产公司很High了,赚钱,计算利润
1700475741
1700475742
public void makeMoney(){
1700475743
1700475744
super.makeMoney();
1700475745
1700475746
System.out.println(“房地产公司赚大钱了……”);
1700475747
1700475748
}
1700475749
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
[
上一页 ]
[ :1.700475734e+09 ]
[
下一页 ]