打字猴:1.700454819e+09
1700454819 }
1700454820
1700454821 }
1700454822
1700454823 请注意粗体部分,与父类的方法名相同,但又不是覆写(Override)父类的方法。你加个@Override试试看,会报错的,为什么呢?方法名虽然相同,但方法的输入参数不同,就不是覆写,那这是什么呢?是重载(Overload)!不用大惊小怪的,不在一个类就不能是重载了?继承是什么意思,子类拥有父类的所有属性和方法,方法名相同,输入参数类型又不相同,当然是重载了。父类和子类都已经声明了,场景类的调用如代码清单2-13所示。
1700454824
1700454825 代码清单2-13 场景类源代码
1700454826
1700454827 public class Client{
1700454828
1700454829 public static void invoker(){
1700454830
1700454831 //父类存在的地方,子类就应该能够存在
1700454832
1700454833 Father f=new Father();
1700454834
1700454835 HashMap map=new HashMap();
1700454836
1700454837 f.doSomething(map);
1700454838
1700454839 }
1700454840
1700454841 public static void main(String[]args){
1700454842
1700454843 invoker();
1700454844
1700454845 }
1700454846
1700454847 }
1700454848
1700454849 代码运行后的结果如下所示:
1700454850
1700454851 父类被执行……
1700454852
1700454853 根据里氏替换原则,父类出现的地方子类就可以出现,我们把上面的粗体部分修改为子类,如代码清单2-14所示。
1700454854
1700454855 代码清单2-14 子类替换父类后的源代码
1700454856
1700454857 public class Client{
1700454858
1700454859 public static void invoker(){
1700454860
1700454861 //父类存在的地方,子类就应该能够存在
1700454862
1700454863 Son f=new Son();
1700454864
1700454865 HashMap map=new HashMap();
1700454866
1700454867 f.doSomething(map);
1700454868
[ 上一页 ]  [ :1.700454819e+09 ]  [ 下一页 ]