java语言中,在子类中定义与父类同返同名同参的方法将会出现“重写(覆写)”,子类将屏蔽父类的相同方法,调用子类的方法将不会调用到父类的该方法。
许多初学者也许会被“覆写”一词迷惑,以为覆盖掉了父类的方法,其实这两种方法是同时独立存在的,只是子父类调用该方法的入口不一样,彼此互不干扰。
1 /* 2 需求:设计一个简单的java程序,证明子类重写父类方法的过程 3 思路: 1、创建父类对象,通过父类对象调用该方法 4 2、创建子类对象,通过父类对象调用该方法 5 3、通过子类对象调用该方法 6 */ 7 class RerridingTest 8 { 9 public static void main(String[] args) 10 { 11 Father f = new Father(); 12 f.show(); 13 Child c = new Child(); 14 f.show();//创建子类对象并没有“覆盖”掉父类自己的show()方法 15 c.show();//子类调用同名方法时直接访问自己定义的方法,并没有访问父类的方法 16 } 17 } 18 19 class Father 20 { 21 void show(){ 22 System.out.println("father show run."); 23 } 24 } 25 26 class Child extends Father 27 { 28 void show(){ 29 System.out.println("child show run."); 30 } 31 } 32 33 /* 34 总结:重写过程是 35 创建子类对象时,因为子类中已有定义该方法,故不从父类继承该方法; 36 调用方法时,判断调用对象在内存中是何种类型,然后到相应类型的方法区中寻找该方法 37 */
结果:
总结:重写过程是 创建子类对象时,因为子类中已有定义该方法,故不从父类继承该方法; 调用方法时,判断调用对象在内存中是何种类型,然后到相应类型的方法区中寻找该方法
时间: 2024-10-08 15:20:42