自动地创建一个构造器,当使用关健字New对对象进行初始化时,也就调用了类的构造器。当然,我们也可以自己编写对象在初始化时所运行的代码。
如果我们在程序中创建了构造器,VB.NET就不会再自动为该类创建构造器了。
继承
继承是扩展类的一种特性。如果需要完成一些功能,当然可以创建一个新类,但如果别人所创建的类可以提供一部分你所需要的功能,就可以创建一个扩充了原有类的新类,我们创建的类可以称为子类或派生类,原来的类可以被称为基础类或父类。有时,子类和继承也用于描述对类的扩充。在VB.NET中,一个类只能继承一个父类,多类继承在VB.NET中是不允许的。
从语法上说,在类名后加一个冒号,后面再加上关健字Inherits和父类的名字就可以完成对类的继承。例如,下面表9中的代码就通过扩充Employee类创建了一个被称为Manager的新类:
扩充类
Imports System
Class Employee
Dim salary As Decimal = 40000
Dim yearlyBonus As Decimal = 4000
Public Sub PrintSalary()
'' print the salary to the Console
Console.Write(salary)
End Sub
End Class
Class Manager: Inherits Employee
End Class
如果关健字出现在下一行上,则子类名后面的分号就不需要了,如下面的代码所示:
Class Manager
Inherits Employee
End Class
现在,我们就可以初始化一个Manager对象,并使用Employee中的成员。如下面表10中的代码所示:
初始化Manager对象
Class Employee
Public salary As Decimal = 40000
Public yearlyBonus As Decimal = 4000
Public Sub PrintSalary()
'' print the salary to the Console
Console.Write(salary)
End Sub
End Class
Class Manager: Inherits Employee
End Class
Module Module1
Public Sub Main()
Dim manager As Manager
manager = New Manager()
manager.PrintSalary()
End Sub
End Module
下面表11中的代码演示了如何通过编写一个新的PrintBonus方法来扩充Manager类别的方法:
在子类中添加新的方法
Class Manager: Inherits Employee
Public Sub PrintBonus()
Console.Write(yearlyBonus)
End Sub
End Class
注意成员可访问性限制的使用