为你解疑:VB.NET继承原理分析
创始人
2024-06-10 13:10:25
0

现实生活中子女继承父母的产业,那是必然的,在编程中我们也常常用子类继承父类的特性,VB.NET继承是类为了得到父界面或者现有父类的一种能力。当创建一个新的从父界面或者现有父类继承而来的类的时候,我们就为原来的类创建了一个子类。这就是我们所知的父子关系。

现有许多关于继承的术语,但是很多是多余的。原来的类,即我们所继承的界面和行为可以由以下的几种互换的说法:
Parent class (父类)
Superclass (超级类)
Base class (基类)

#T#VB.NET继承是用于生物学上的名词。比如,狗是犬科动物而犬科动物又是哺乳动物,因此作为犬科动物,狗继承了哺乳动物所有的属性和行为,这就是继承的原始涵义,即生物学上的继承。在这里借用继承这个名词用于面向对象中,具有许多相似之处。为了在VB中满足许多程序设计人员能够象在Visual C++中利用面向对象的功能,特别是继承的功能,VB.NET开始有了继承的概念。但是VB.NET还是不允许多重继承,即子类不能有多个父类继承而来,它只能继承一个父类。而VB.NET允许深度的继承分级结构,即一个子类可以有另外一个子类继承而来;但是VB.NET还是不允许同时继承多个父类。

在父子关系中,父对象可以拥有多个子对象,而子对象虽然都是由父对象继承而来但是它们是不同类型的。举个例子,一群子女虽然都是由父母生育的,但是他们还是有不同的相貌、性格等等。
接下来我们详细介绍VB.NET继承。这个项目的数值应该要验证一下确保它指一个实际的产品,并且可能的话我们也想提供产品的描述,所ProductLine类的代码如下:

  1. Public Class ProductLine  
  2. Inherits LineItem  
  3. Private mstrDescription As String  
  4. Public ReadOnly Property Description() As String  
  5. Get  
  6. Return mstrDescription  
  7. End Get  
  8. End Property  
  9. Public Sub New(ByVal ProductID As String)  
  10. Item = ProductID 
  11. (此处你可以从数据库中转载产品数据)  
  12. End Sub  
  13. End Class  
  14. 上面语句中我们已经使用的继承语句:  
  15. Inherits LineItem  
  16. 这条语句使ProductLine类获得了LineItem类的所有的界面元素或者行为。所以我们可以如下编写客户代码:  
  17. Protected Sub Button1_Click(ByVal sender As Object, _  
  18. ByVal e As System.EventArgs)  
  19. Dim pl As ProductLine  
  20. pl = New ProductLine(23abc  
  21. MessageBox.Show(pl.Item)  
  22. MessageBox.Show(pl.Description)  
  23. End Sub 

以上的代码使用了从LineItem类继承而来的Item属性以及ProductLine中的Description属性。
类似地,我们可以编写ServiceLine:

  1. Public Class ServiceLine  
  2. Inherits LineItem  
  3. Private mdtDateProvided As Date  
  4. Public Sub New()  
  5. Quantity = 1 
  6. End Sub  
  7. Public Property DateProvided() As Date  
  8. Get  
  9. Return mdtDateProvided  
  10. End Get  
  11. Set  
  12. mdtDateProvided = Value 
  13. End Set  
  14. End Property  
  15. End Class 

这里要注意的是,上面的继承语句表明ServiceLine是LineItem的子类。而DateProvided属性是从LineItem类中加入的界面。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
规避非法攻击 用好路由器远程管... 单位在市区不同位置设立了科技服务点,每一个服务点的员工都通过宽带路由器进行共享上网,和单位网络保持联...
范例解读VB.NET获取环境变... VB.NET编程语言的使用范围非常广泛,可以帮助开发人员处理各种程序中的需求,而且还能对移动设备进行...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...