[英]Inheritance private method and public
假設我有基礎 class A
和擴展它的子類B
Class A
得到:
protected int doStuff(List<String>list)
在B
中,哪種方法可以覆蓋此方法而不會出錯?
protected long doStuff(List<String> l)
private int doStuff(Collection<String> c)
public final int doStuff(List<String>l)
protected int doStuff(list1, l2)
我認為這是public final
,但我不確定。
我今天考試有這個問題
protected long doStuff(List<String> l)
返回的類型不同( long
而不是int
)。 這不會覆蓋初始方法。
private int doStuff(Collection<String> c)
您不能降低繼承方法的可見性。 另外,論點不同。 這不會覆蓋初始方法。
public final int doStuff(List<String> l)
返回類型相同,參數類型相同。 方法可見性不同,但由於public
可見性大於protected
,它會起作用。 這是正確的答案。
protected int doStuff(list1, l2)
參數的數量不同。 這不會覆蓋初始方法。 (注意沒有為 arguments 指定類型,所以這個方法原型也是無效的。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.