[英]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呢?
f()
是private
可見性,則不會轉發,因為B
無法看到它。 f()
是public
,那么我猜使用B
或C
任何人都可以使用f
。 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.