簡體   English   中英

訪問修飾符的繼承:在抽象類的最終方法上

[英]Access modifiers inheritance: on final methods in abstract classes

通過子級訪問時,隱式繼承方法(父級的抽象最終方法繼承於子級)的訪問可見性是否始終相同?

隱式轉發規則是什么?

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:如果父項f()private可見性,則不會轉發,因為B無法看到它。
  • 情況2:如果父級f()public ,那么我猜使用BC任何人都可以使用f
  • 情況3:如果父f() protected ,我想B會將方法“暴露”為受保護的,這意味着C可以看到它。

您的措辭含糊不清。 我對您的問題的解釋方式是:

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

如果是這樣,答案是肯定的: C將能夠訪問f

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM