打字猴:1.70047575e+09
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 ]  [ 下一页 ]