我正在做一个关于班级继承的实用大学工作。我的问题是三个子类中的两个有一个常见的方法,它没有出现在第三个中,所以我不知道是否最好在没有实现的情况下将这个方法添加到超类中(这是一个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. C#继承最佳做法
- 3. 确定最佳继承图
- 4. 代表时间的最佳班级
- 5. 我怎样才能找出我的班级从哪个班级继承?
- 6. 如何从我的班级列表中找到从特定班级继承的班级?
- 7. 设置班级NSTimeInterval属性
- 8. 班级延伸 - 最佳做法/最佳解决方案
- 9. UIKit类继承的最佳实践
- 10. Scala的继承最佳实践
- 11. 继承对象的最佳做法
- 12. 从我的班级的Bs4继承方法
- 13. 多级继承
- 14. 继承错误:“期待的班级名称”{'token“
- 15. Eclipse IDE。查看所有班级的继承方法列表
- 16. Rails单表继承 - 显式设置类型的最佳方式是什么?
- 17. 继承常量 - 最佳风格?
- 18. 继承或设置,选项
- 19. 原型继承设置
- 20. 在不同的班级设置布尔
- 21. 的Python/Django的继承2班
- 22. 从一个班级继承以后会伤害你吗?
- 23. C# - 高级继承
- 24. Codeigniter多级继承
- 25. php4多级继承
- 26. 班级设计师
- 27. C#+班级设计
- 28. 在儿童班级PHP设置Cookie
- 29. 将班级成员设置为功能
- 30. PHP中的多级继承