java中父类与子类有相同属性调谁?取决于左边

java中父类与子类有相同属性调谁?答案是:取决于左边!
 

一、

在今天的继承复习当中,我有对继承中的属性有新的感悟------>子类继承父类,会继承父类的方法和属性,看下图:

从上图可以看出,即使子类是一个空壳,他还是从父类获取到父类的属性name 和方法 test() —— 这就是“继承”的魅力。

二、

但是接下来我说的就是一个小重点--->在继承当中,子类继承父类的属性和继承方法的方式上有所差别:

--->父类属性不可被重写,只会被调用,父类方法可以被重写,也可以被调用

--->当子类中存在和父类同名属性,父类属性会隐藏起来,在多态的情况下属性被调用时会激活父类属性子类属性隐藏起来,而方法不会隐藏,一旦被重写,只能使用super来在子类调用

接下来在子类中调用父类同名属性的两种方式(即激活子类中的隐藏的父类属性)

三、总结:

继承中,
属性:不可被重写,只会被隐藏
方法:会被重写,不会隐藏

即:
多态中,成员变量
无论编译和运行,都参考左边(引用型变量所属的类)。


也就是说
Fu f = new Zi();
System.out.println(f.age);
打印的还是父类的值。


--------------------- 

原文:https://blog.csdn.net/IT_COOKIE_SAM/article/details/58585888
           https://blog.csdn.net/weixin_39707894/article/details/79399687

猜你喜欢

转载自blog.csdn.net/HD243608836/article/details/89155433