访问修饰符继承:在抽象类中的最终方法

时间:2014-12-10 17:49:08

标签: java inheritance polymorphism abstract-class modifiers

通过子进行访问时,隐式继承方法(父级的继承最终方法在子级上继承)的访问可见性是否始终相同?

隐含的转发规则是什么?

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呢?

  • 案例1:如果父{1}} f()未见,private无法看到它。
  • 案例2:如果父Bf(),我猜任何使用publicB的人都会在C上有空。
  • 案例3:如果父ff(),我猜protected会将该方法“公开”为受保护,这意味着B可以看到它。

1 个答案:

答案 0 :(得分:0)

你的措辞半不清楚。我正在解释你的问题的方式是:

class A{protected void f();}
class B extends A{/* Can see f. */}
class C extends B{/* Can see f? */}

如果是,答案是肯定的:C可以访问f