- 继承中,成员变量的访问特点
a. name前什么都不加,name变量的访问采用就近原则,先在局部变量中查找,若没找到,继续在本类的成员变量中查找,若没找到,继续在直接父类的成员变量中查找,若还没找到,则在直接父类的直接父类的成员变量中查找,一层一层的以此类推…
b. name前加this,则直接在本类的成员变量中查找,若没找到,则继续在直接父类的成员变量中查找,一层一层的以此类推…
c. name前加super,则直接在直接父类的成员变量中查找,若没找到,则继续在直接父类的直接父类的成员变量中查找,一层一层的以此类推…
总结:
-
继承中,成员方法的访问特点
a. 方法直接调用时,虽然没写调用者,但默认的调用者是this,即默认访问本类的方法,因为方法在调用时必须要有一个调用者 -
方法的重写
- 当父类的方法不能满足子类现在的需求时,需要进行方法重写
- 书写格式:
在继承体系中,子类出现了和父类中一模一样的方法声明,我们就称子类这个方法是重写的方法 - @Override重写注解:
a. @Override是放在重写后的方法上,校验子类重写时语法是否正确,例如
@Override
public void eat (){
}
b. 加上注解后如果有红色波浪线,表示语法错误
c. 建议重写方法都加@Override注解,代码安全,优雅! - 本质:
子类覆盖了从父类中继承下来虚方法表里的方法,如图:
- 方法重写的注意事项: