Base b = new Sub ( ) ;
JAVA基类变量接收子类对象的引用后,会向上转型:
此时:
1、变量 b 默认可以访问的方法依然是 基类中自身独有的 public和 protected 方法 ,private 方法不可被外界直接访问,这点始终不变
【 相当于Base b = new Base() 】
2、Sub 自身独有而 Base中没有的方法(无论是public,protected还是private ) ,变量 b 都不可以访问
3、但如果 Sub有覆盖Base中的 public或protected方法,那此时变量 b 访问的将是被 Sub 覆盖的public和protected方法
【 private方法永远不能被覆盖,也无法被外界直接访问 】
博客介绍了Java中基类变量接收子类对象引用后的向上转型情况。变量默认可访问基类自身的public和protected方法,子类独有而基类没有的方法不可访问,若子类覆盖基类的public或protected方法,变量访问的是被覆盖后的方法,private方法不能被覆盖且不可直接访问。
2061

被折叠的 条评论
为什么被折叠?



