[Java]子类到底能继承父类中的哪些东西?继承中成员变量/方法访问特点---就近原则

首要结论

子类到底能继承父类中的哪些东西?

构造方法 成员变量 成员方法
非私有,不能 非私有,能 非私有(能被添加进虚方法表中),能
private,不能 private,能继承,但不能用 private,不能

成员变量继承情况

父类的 name,age 没用 private 修饰:

父类的 name,ageprivate 修饰:


成员方法

  • 非 private
  • 非 static
  • 非 final

继承中成员变量访问特点---就近原则

主要看 "喝茶" 案例;

  • 调用 hobby 采取就近原则,从局部中开始向上找
  • 调用 this.hobby 采取就近原则,从子类中开始找
  • 调用 super.hobby 采取就近原则,从父类中开始找

继承中成员方法访问特点---就近原则

  • 直接调用满足就近原则
  • super 调用,直接访问父类


方法的重写

当父类的方法不能满足子类现在的需求时,需要进行方法重写。

书写格式:在继承体系中,子类出现了和父类中一模一样的方法声明,我们就称子类这个方法是重写的方法。

@Override 重写注释:

  1. @Override 是放在重写后的方法上,检验子类重写时语法是否正确
  2. 加上注释后如果有红色波浪线,表示语法错误
  3. 建议重写方法都加上 @Override ,代码安全、优雅


本质:

方法重写即为,子类覆盖了 从父类中继承的、虚方法表里的 方法。

重写注意事项


链接

(第二个子类重写父类方法时,访问权限子类必须大于等于父类,这里的访问权限指的是 子类中成员方法的访问权限。)反正记住 子类方法名称、形参列表和父类完全一致即可。

相关推荐
yaoxin5211239 分钟前
507. Java 反射 - 在 BeanFactory 中实现依赖注入
java·开发语言
OPEN-F15 分钟前
C++模板教程:变参模板、折叠表达式与SFINAE
java·开发语言·c++
有点。17 分钟前
C++二叉搜索树进阶
开发语言·c++
HugoStudio_SWAN21 分钟前
【擦除重绘】C++ 控制台动画:弹跳 Logo DVD 屏保效果
开发语言·c++·学习·程序人生
2601_962072211 小时前
SpringMVC进阶(自定义拦截器以及异常处理)
java
2601_962073812 小时前
Spring全面详解(基础版)
java·后端·spring
kyle~2 小时前
C++_STL---迭代器失效
开发语言·c++
谢亮_vipxieliang3 小时前
ValidX分组验证详解:不同场景使用不同验证规则
java·spring boot·后端·spring cloud·eclipse·hibernate
Brilliantwxx3 小时前
【C语言】 初入嵌入式C语言复习(基础+进阶面试题)
c语言·开发语言
熊野君3 小时前
附录与 Codex 实操手册
开发语言·人工智能·产品经理