通过子进行访问时,隐式继承方法(父级的继承最终方法在子级上继承)的访问可见性是否始终相同?
隐含的转发规则是什么?
class package0.Parent {ACCESS_MODIFIER final void f();}
class package1.B extends A { /* Implicit f?*/}
class package2.C extends B {/* Implicit f? */}
然后:将永远转发ACCESS_MODIFIER
?如果是这样,为什么案例1?案例3呢?
f()
未见,private
无法看到它。B
为f()
,我猜任何使用public
或B
的人都会在C
上有空。f
为f()
,我猜protected
会将该方法“公开”为受保护,这意味着B
可以看到它。答案 0 :(得分:0)
你的措辞半不清楚。我正在解释你的问题的方式是:
class A{protected void f();}
class B extends A{/* Can see f. */}
class C extends B{/* Can see f? */}
如果是,答案是肯定的:C
可以访问f
。