java基础学习 day41(继承中成员变量和成员方法的访问特点,方法的重写)

1. 继承中,成员变量的访问特点
在这里插入图片描述
a. name前什么都不加,name变量的访问采用就近原则,先在局部变量中查找,若没找到,继续在本类的成员变量中查找,若没找到,继续在直接父类的成员变量中查找,若还没找到,则在直接父类的直接父类的成员变量中查找,一层一层的以此类推…
b. name前加this,则直接在本类的成员变量中查找,若没找到,则继续在直接父类的成员变量中查找,一层一层的以此类推…
c. name前加super,则直接在直接父类的成员变量中查找,若没找到,则继续在直接父类的直接父类的成员变量中查找,一层一层的以此类推…

总结:
在这里插入图片描述

2. 继承中,成员方法的访问特点
在这里插入图片描述
a. 方法直接调用时,虽然没写调用者,但默认的调用者是this,即默认访问本类的方法,因为方法在调用时必须要有一个调用者

3. 方法的重写

  • 当父类的方法不能满足子类现在的需求时,需要进行方法重写
  • 书写格式:
    在继承体系中,子类出现了和父类中一模一样的方法声明,我们就称子类这个方法是重写的方法
  • @Override重写注解:
    a. @Override是放在重写后的方法上,校验子类重写时语法是否正确,例如
    @Override
    public void eat (){
    }
    b. 加上注解后如果有红色波浪线,表示语法错误
    c. 建议重写方法都加@Override注解,代码安全,优雅!
  • 本质:
    子类覆盖了从父类中继承下来虚方法表里的方法,如图:
    在这里插入图片描述
  • 方法重写的注意事项:
    在这里插入图片描述

4. 总结

  • 无论是成员变量还是成员方法,若子类没有重写该变量或方法,那么在子类中,或在子类外但通过这个子类,调用该变量或方法,是调用的从父类继承过来的变量或方法(相当于是子类自动创建一个新的相同的变量或方法,但存储的位置与真正属于他自己的变量或方法不同)

猜你喜欢

转载自blog.csdn.net/u011453680/article/details/129097067