java中子类重写父类方法的思想本质

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中子类重写父类方法的思想本质相关的知识,希望对你有一定的参考价值。

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 */
结果:

  技术分享

总结:重写过程是
         创建子类对象时,因为子类中已有定义该方法,故不从父类继承该方法;
         调用方法时,判断调用对象在内存中是何种类型,然后到相应类型的方法区中寻找该方法

以上是关于java中子类重写父类方法的思想本质的主要内容,如果未能解决你的问题,请参考以下文章

Java面向对象_继承思想——方法覆盖

Java中子类重写父类的方法为啥返回值类型要小于等于父类方法的返回值类型?

java子类重写父类带泛型的方法

java 复写 意思

Java中子类的访问权限为何比父类大?

24. java面向对象 - 方法重写