强烈推荐VB.NET继承类
创始人
2024-06-10 16:31:14
0

VB.NET继承类是一个这样的特征即允许你扩展类,如果你需要一些功能,你可以创造一个新类,如果你需要的功能中的部分功能已经能由一个已经存在的类提供了,你可以扩展原来的那个类来构建一个新类。那么你新建的这个类成为子类或者VB.NET继承类,原来的那个类称为父类或者基类。扩充类的过程称为扩展,有时术语 subclass或inherit 用于描述扩展类的行为。在VB.NET中一个类只能有一个父类,多个父类的情况是不允许的。

在语法构成上,声明一个扩展类在类名后面使用分号,分号后面使用Inherits和父类名,例如,扩展类Employee创建一个新类Manager,代码如下

  1. Listing 9: Extending a class  
  2.  
  3. Imports System  
  4.  
  5. Class Employee  
  6.  
  7.  Dim salary As Decimal = 40000 
  8.  Dim yearlyBonus As Decimal = 4000 
  9.  
  10.  Public Sub PrintSalary()  
  11.   ' print the salary to the Console  
  12.   Console.Write(salary)  
  13.  End Sub  
  14.  
  15. End Class  
  16.  
  17. Class Manager: Inherits Employee  
  18. End Class 

如果单词Inherits 显示在下一行,那么就不需要分号,如:

  1. Class Manager  
  2.    Inherits Employee  
  3. End Class 

现在你可以初始化一个Manager对象,使用Manager对象中的成员,如下面的代码

  1. Class Employee  
  2.  
  3.  Public salary As Decimal = 40000 
  4.  Public yearlyBonus As Decimal = 4000 
  5.  
  6.  Public Sub PrintSalary()  
  7.   ' print the salary to the Console  
  8.   Console.Write(salary)  
  9.  End Sub  
  10.  
  11. End Class  
  12.  
  13. Class Manager: Inherits Employee  
  14. End Class  
  15.  
  16. Module Module1  
  17. Public Sub Main()  
  18.  Dim manager As Manager  
  19.  manager = New Manager()  
  20.  manager.PrintSalary()  
  21. End Sub  
  22. End Module 

下面的例子中显示了在manage类中添加一个新方法PrintBonus

  1. Class Manager: Inherits Employee  
  2.  Public Sub PrintBonus()  
  3.   Console.Write(yearlyBonus)  
  4.  End Sub  
  5. End Class 

注意成员访问限制的使用,比如说如果设定yearlyBonus域为私有,那么manage类就不能访问他,否则在编译时就会得出错误结论。

#t#VB.NET继承类只是一个普通的实践。事实上,.NET Framework类库由不同层次的类组成,他们分别继承于其他的类。比如,Windows.Forms名字空间中的button类是 ButtonBase类的子类,而ButtonBase类本身又是Control类的子类,所有类最终都以System.Object作为他们的根,在.NET Framework类库中System.Object又称为根或者超类。

Public Class MyForm : Inherits System.Windows.Forms.Form
End Class

声明的这个空白类,经编译执行后生成一个windows表单,你一行代码都用不作写就可以创建一个表单,这是因为myform继承于System.Windows.Forms.Form,他也继承了form的功能。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...