好吧,这是一个 ASP.NET WebForms 示例:
我有一个基类,一个 Web 控件,假设它是一个简单的TextBox.
然后我继承TextBox提供格式 - RichTextBox。
然后我想要一个TextBox可以进行拼写检查的 - SpellCheckingTextBox。
如果我需要一个怎么办SpellCheckingRichTextBox?我将不得不再次实现拼写检查或富文本逻辑并从其中之一继承。
实际上,您可以将它们定义为接口:ISpellCheckingTextBox并IRichTextBox在SpellCheckingRichTextBox. 您还可以编写扩展方法来TextBox完成同样的事情。
多重继承从根本上来说是有缺陷的,因为它认为继承的类是平等的。如果两个基类都有一个ID字段怎么办?