class A{
public void m1(){}
public void m2(){}
}
class B{
public void m3(){}
public void m1(){}
public static void main(String args[]){
A a=new B();
a.m1();
//Why we have access to A class methods only.
// Why overriding methods cannot be more restrictive
}
}
-5
A
回答
0
B
「是A」A
,所以你可以將B
傳遞給像doSomethingToA(A a)
這樣的方法。該方法正確地期望能夠看到m1
和m2
。
您只能訪問A
方法,因爲a的類型爲A
- 它可能是A
而不是B
,因此您只能調用變量類公開的方法。你coulkd改變主要是B a=new B();
,現在你可以調用B方法。
0
一個被定義爲類型A,因此a.m1(),使用來自A.
方法M1()可以延伸A和B,然後代碼將調用M1從B.
0
當您擴展一個類或實現一個接口時,覆蓋是可能的。 即,當我們談論接口和繼承時,重寫可以適用。
在你的代碼中,你正在重新定義不重寫的方法。
只有繼承的方法可能會被覆蓋,並且記住私有方法不會被繼承。
相關問題
- 1. 爲什麼我們不能重寫`||`和`&&`?
- 2. 爲什麼派生類不能訪問基類靜態方法?
- 3. 爲什麼我們要使用抽象類或方法,爲什麼不重寫超類方法呢?
- 4. 爲什麼不能用私有擴展類方法重寫基類方法?
- 5. 爲什麼我不能調用方法?
- 6. Android - 爲什麼我不能重寫SeekBar的onProgressRefresh方法?
- 7. 爲什麼受保護的方法不能從子類訪問?
- 8. 爲什麼我不能訪問貓鼬模式的方法?
- 9. 爲什麼我不能重寫父類?
- 10. 爲什麼我不能重載這個基類方法?
- 11. 爲什麼我不能訪問從類
- 12. 爲什麼我不能使用功能性方法來工作?
- 13. 爲什麼派生類重寫方法不應該比java中的基類更具限制性?
- 14. 爲什麼@decorator不能裝飾靜態方法或類方法?
- 15. 爲什麼我們不能實現`getAB()&&`和`getAB()`兩個方法?
- 16. 爲什麼可以重寫方法但變量不能?
- 17. 爲什麼我不能訪問爲json
- 18. 爲什麼不能存儲jQuery方法?
- 19. 爲什麼Finalize方法不能覆蓋
- 20. 爲什麼不能使用addEventListener方法
- 21. 爲什麼模塊的'自我'方法不能成爲類的單一方法?
- 22. 爲什麼這個方法不能訪問會話?
- 23. 爲什麼數字文字不能訪問Number方法?
- 24. 爲什麼不能訪問worldnew方法java?
- 25. 爲什麼我不能從我的Python類中調用方法?
- 26. 爲什麼我們不能在類中重寫
- 27. JAVA:爲什麼我不能訪問同一個類中的方法?
- 28. 爲什麼我們應該重寫一個方法?
- 29. 爲什麼我們重寫java中的finalize()方法?
- 30. 爲什麼我們需要重寫方法 - objective c?
'A'沒有字段,它通常被認爲是糟糕的設計,允許訪問類字段。你可以通過使'final'類或'final'類方法來限制擴展...... – MadProgrammer 2014-10-30 05:29:43
這個問題似乎是無關緊要的,因爲它顯然是一個作業複製粘貼,沒有OP的努力。 – JamesENL 2014-10-30 05:29:57
B類是否延伸A類? – codeMan 2014-10-30 05:35:45