我正在寻找这个问题的答案: 超级班应该知道子类吗?
示例:
abstract class A {
add(B) // Here is my problem. I am not really sure but is it correct the super class
// knows about "B" - the subclass?
}
class B extends A {
}
这不好吗?如果是这样,这是解决方案:
abstract class A {
add(InterfaceB);
}
class B extends A implements InterfaceB {
}
interface B {}
答案 0 :(得分:0)
通常认为超类不了解其子类更好。这样做是为了保持程序modular并且更容易维护。
解决方案实际上取决于您要做的事情。您的代码看起来可能是Linked List实现,但我可能错了。
答案 1 :(得分:0)
超类的属性和行为对于所有子类都是通用的。所以Design 2nd比1st更好。
但这也取决于你想要做什么。如果您的超类对子类的数据项执行某些计算,并且所有子类都需要该功能。转到第二个解决方案,但如果你想要特定类型的子类的这个功能,那么去吧 解决方案1。