在 Visual Basic .NET 中,继承通过关键字 Inherits 实现,这使得可以基于现有类创建新类,从而继承它们的属性和方法。这允许重复使用代码,并在不重复的情况下扩展功能。
在继承时,重要的是:
Protected 修饰符或使用 Overridable / Overrides 关键字用于必须被重写的方法。MustInherit 关键字,对于禁止继承的类,使用 NotInheritable。示例:
' 抽象类 Public MustInherit Class Animal Public MustOverride Sub MakeSound() End Class ' 继承的类 Public Class Dog Inherits Animal Public Overrides Sub MakeSound() Console.WriteLine("Woof!") End Sub End Class
特点:
Implements 实现。类是否能够在 Visual Basic .NET 中同时继承多个类?
错误答案: 是的,可以通过逗号(或通过接口)实现。
正确答案: 不,在 Visual Basic .NET 中只支持类的单继承,但可以实现多个接口。
示例:
Public Interface IRunnable Sub Run() End Interface Public Interface ISwimmable Sub Swim() End Interface Public Class Person Implements IRunnable, ISwimmable Public Sub Run() Implements IRunnable.Run ' 实现 End Sub Public Sub Swim() Implements ISwimmable.Swim ' 实现 End Sub End Class
故事
在一个大型会计系统中,工程师试图继承两个类(例如Employee和Manager)。代码无法编译,导致项目延迟了几天:不得不重新设计架构,将功能提炼为接口。
故事
年轻的开发人员忘记将基类的方法标记为Overridable,但试图在子类中重写它们。导致编译时错误,团队花时间进行调试。
故事
在一个项目中,基类中的属性意外地保持为公共的,并且被子类不正确地修改,导致封装破坏以及难以捕捉的 bug 出现。