簡體   English   中英

Inheritance 私有方法和公共

[英]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 ,但我不確定。

我今天考試有這個問題

1. protected long doStuff(List<String> l)

返回的類型不同( long而不是int )。 這不會覆蓋初始方法。

2. private int doStuff(Collection<String> c)

您不能降低繼承方法的可見性。 另外,論點不同。 這不會覆蓋初始方法。

3. public final int doStuff(List<String> l)

返回類型相同,參數類型相同。 方法可見性不同,但由於public可見性大於protected ,它會起作用。 這是正確的答案。

4. protected int doStuff(list1, l2)

參數的數量不同。 這不會覆蓋初始方法。 (注意沒有為 arguments 指定類型,所以這個方法原型也是無效的。)

暫無
暫無

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

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