是否有可能只继承一些(不是所有)基类成员的类?

CSh*_*eto 4 c# inheritance class base-class members

有没有一种方法,派生类只能继承所有基类成员中的一些......在C#中?如果可以进行此类操作,请提供一些示例代码.

Eri*_*ert 11

有没有一种方法,派生类只能继承所有基类成员中的一些......在C#中?

是.创建一个具有一个方法,一个构造函数和一个析构函数的基类.它有三个新成员,加上其基类的可遗传成员.现在从中派生出一个类.构造函数和析构函数不会被继承; 所有其他成员都会.因此,可以创建一个仅继承其某些基类成员的派生类.

我怀疑答案令人不满意.

如果您的问题实际上是"基类是否可以限制派生类继承的可遗传成员?" 答案是不.派生类继承基类的所有可遗留成员,无论其可访问性如何.

如果您的问题是"派生类是否可以选择从基类继承哪些可归属成员?" 答案是不.派生类继承基类的所有可遗留成员,无论其可访问性如何.

如果您对此主题感兴趣,请进一步阅读:

https://ericlippert.com/2011/09/19/inheritance-and-representation/


Ren*_*nan 2

当你让一个类型从另一个类型继承时,你会得到一切——来自父类型的好的和“坏”的部分(“坏”,在这种情况下,意味着你不想要的东西)。

可以通过new修饰符在子类中隐藏父类的一些东西。然而,从多年的经验中获取这个建议......这通常会导致大量的工作花费在以子类的工作方式进行解决方法上。如果你不走这条路,而是重新设计你的类,你会避免很多麻烦。

如果子类型必须从父类型中删除功能,则父类型可能存在设计缺陷。重塑它以减少功能。您可以将其不同的功能重新分配给不同的子项。你知道,一个班级并不总是必须是独生子女;)

  • 我只是为了“新”修饰符的警告而投票。除了痛苦之外,什么也没有产生。 (2认同)