【发布时间】:2012-10-23 20:10:04
【问题描述】:
我有以下继承:
class A
{
void Configure(object param1) {...};
}
class B : A
{
void Configure(object param1) {...}; // The method is not defined in B, it is available from the base class. This is just the desired interface of class B
}
class C : A
{
void Configure(object param1, object param2) {...};
}
我不希望 C 类有一个带 param1 的配置可见,因为在这种情况下它会使对象不完整。
我尝试了覆盖,但覆盖无法更改可见性。
我找到的唯一方法是调用 A 类方法 protected void ConfigureBase(object param1) {...}; 并使 B 类的方法 Configure 调用 ConfigureBase。
由于我对这种设计并不完全满意,因为它让我重新定义了每个类,Configure 是否有标准的处理方式?
【问题讨论】:
-
这看起来很像XY Problem。您在解决某些未告诉我们的问题时遇到了问题。每个基本类型和派生类型的目标是什么?
-
感谢您的想法,但我认为以下答案足以理解我的需要。再次感谢。
标签: c# .net oop inheritance