Oop 如何解决类必须从基类继承的问题
我想知道处理这种情况的最佳方法。如何避免重复元素Oop 如何解决类必须从基类继承的问题,oop,Oop,我想知道处理这种情况的最佳方法。如何避免重复元素 class ABO -> Need method A and B method C class AO : O method A class BO : O method B class O 谢谢 您可以避免继承。如果您只需要一个功能,而不需要一个IS-a关系,只需使用组合即可 保存所需类的两个本地成员,并创建一个将调用该成员函数的包装函数 类C伪代码示例: class ABO { AO m_ao; BO m_bo; pub
class ABO -> Need method A and B
method C
class AO : O
method A
class BO : O
method B
class O
谢谢 您可以避免继承。如果您只需要一个功能,而不需要一个IS-a关系,只需使用组合即可 保存所需类的两个本地成员,并创建一个将调用该成员函数的包装函数 类C伪代码示例:
class ABO
{
AO m_ao;
BO m_bo;
public:
MethodA ()
{
m_ao.MethodA();
}
MethodB()
{
m_bo.MethodB();
}
}
有些语言支持多重继承。您也可以尝试接口,或者组合而不是继承。问题中没有提供足够的信息来理解什么是最干净的方法。这个问题的答案取决于许多参数,包括“您的语言支持哪些OOP功能?”。此外,答案很可能是“你需要重构(改变)你的层次结构”。@David我想信息还不够。一个类可以从A和B的操作中继承。这种方法可能是错误的。使用接口可以解决我的问题,但我使用的语言不能在接口中使用类型,我需要一种定义泛型的方法。@Rushino:不,没有足够的信息。关于这些模型,没有任何内容描述它们之间的关系,也没有描述它们正在建模的概念。在这种情况下,继承可能根本不是正确的方法。此外,哪些面向对象的特性甚至可用在很大程度上取决于所使用的语言,这在问题中没有具体说明。就目前而言,这完全是主观的,容易引起不必要的争论。你能举个例子吗?@Rushino我添加了一个简单的例子。