我正在做一個關於班級繼承的實用大學工作。我的問題是三個子類中的兩個有一個常見的方法,它沒有出現在第三個中,所以我不知道是否最好在沒有實現的情況下將這個方法添加到超類中(這是一個void方法),或者在兩個方法中分別實現它類。最好的實施方式是什麼?班級繼承的最佳設置
1
A
回答
7
你可以嘗試這樣的:
-- Base
-- Base With Common Method
-- Class 1
-- Class 2
-- Class 3
在Java中它會是這樣的:
public class A {
}
public class B extends A {
public void commonMethod() { }
}
public class Class1 extends B {
}
public class Class2 extends B {
}
public class Class3 extends A {
}
4
你不應該在實現中使用純粹的繼承和重用爲準則。選擇它,如果你真的有一個真正的「是一個」關係在您建模的域的上下文中。分享您嘗試建模的域以獲取更具體的幫助。
1
最好的辦法是爲兩個基類添加另一個抽象,併爲所有子類提供一個通用抽象。
例如:
Dog
Cat
Bird
Dog -> FourLegs -> Animal
Cat -> FourLegs -> Animal
Bird -> Animal
「 - >」可以擴展或實現(抽象類或接口)
在任何情況下都不要四個腿添加到鳥,只是因爲它的方便:)
1
您可以將該方法添加到基類中。如果它們實現它,子類將重載此方法,否則僅使用基類方法。
Smthng like:
Base class: methoda()
SubClass1: methoda() --overloaded
SubClass2: methoda() --second overloaded version
SubClass3: no Implementation --used methoda() of baseclass as no implementation given.
1
繼盤古的思想,總是試圖青睞組成了繼承如果關係不是「是」。
相關問題
- 1. 繼承和繼承最佳實踐
- 2. 學說加入和班級表繼承
- 3. 只能從班級繼承一次
- 4. C#繼承最佳做法
- 5. java繼承最佳實踐?
- 6. JavaScript繼承最佳策略
- 7. 確定最佳繼承圖
- 8. 最佳實踐來設置繼承類常量參數
- 9. 最佳做法 - 在派生類中設置繼承變量
- 10. 代表時間的最佳班級
- 11. 設置班級的差異?
- 12. 我怎樣才能找出我的班級從哪個班級繼承?
- 13. 如何從我的班級列表中找到從特定班級繼承的班級?
- 14. 設置班級NSTimeInterval屬性
- 15. Scala的繼承最佳實踐
- 16. UIKit類繼承的最佳實踐
- 17. 繼承對象的最佳做法
- 18. 班級延伸 - 最佳做法/最佳解決方案
- 19. 鴨子班,ABC,繼承,__new__
- 20. 測試設置的繼承
- 21. 從我的班級的Bs4繼承方法
- 22. 多級繼承
- 23. 學校:繼承,顯示我的班級工作?
- 24. 繼承錯誤:「期待的班級名稱」{'token「
- 25. Eclipse IDE。查看所有班級的繼承方法列表
- 26. 最佳實踐:多少繼承太多?
- 27. 繼承常量 - 最佳風格?
- 28. Rails單表繼承 - 顯式設置類型的最佳方式是什麼?
- 29. 班級設計(UML班級圖)
- 30. 兼容性設置繼承