现实生活中子女继承父母的产业,那是必然的,在编程中我们也常常用子类继承父类的特性,VB.NET继承是类为了得到父界面或者现有父类的一种能力。当创建一个新的从父界面或者现有父类继承而来的类的时候,我们就为原来的类创建了一个子类。这就是我们所知的父子关系。
现有许多关于继承的术语,但是很多是多余的。原来的类,即我们所继承的界面和行为可以由以下的几种互换的说法:
Parent class (父类)
Superclass (超级类)
Base class (基类)
#T#VB.NET继承是用于生物学上的名词。比如,狗是犬科动物而犬科动物又是哺乳动物,因此作为犬科动物,狗继承了哺乳动物所有的属性和行为,这就是继承的原始涵义,即生物学上的继承。在这里借用继承这个名词用于面向对象中,具有许多相似之处。为了在VB中满足许多程序设计人员能够象在Visual C++中利用面向对象的功能,特别是继承的功能,VB.NET开始有了继承的概念。但是VB.NET还是不允许多重继承,即子类不能有多个父类继承而来,它只能继承一个父类。而VB.NET允许深度的继承分级结构,即一个子类可以有另外一个子类继承而来;但是VB.NET还是不允许同时继承多个父类。
在父子关系中,父对象可以拥有多个子对象,而子对象虽然都是由父对象继承而来但是它们是不同类型的。举个例子,一群子女虽然都是由父母生育的,但是他们还是有不同的相貌、性格等等。
接下来我们详细介绍VB.NET继承。这个项目的数值应该要验证一下确保它指一个实际的产品,并且可能的话我们也想提供产品的描述,所ProductLine类的代码如下:
- Public Class ProductLine
- Inherits LineItem
- Private mstrDescription As String
- Public ReadOnly Property Description() As String
- Get
- Return mstrDescription
- End Get
- End Property
- Public Sub New(ByVal ProductID As String)
- Item = ProductID
- (此处你可以从数据库中转载产品数据)
- End Sub
- End Class
- 上面语句中我们已经使用的继承语句:
- Inherits LineItem
- 这条语句使ProductLine类获得了LineItem类的所有的界面元素或者行为。所以我们可以如下编写客户代码:
- Protected Sub Button1_Click(ByVal sender As Object, _
- ByVal e As System.EventArgs)
- Dim pl As ProductLine
- pl = New ProductLine(23abc
- MessageBox.Show(pl.Item)
- MessageBox.Show(pl.Description)
- End Sub
以上的代码使用了从LineItem类继承而来的Item属性以及ProductLine中的Description属性。
类似地,我们可以编写ServiceLine:
- Public Class ServiceLine
- Inherits LineItem
- Private mdtDateProvided As Date
- Public Sub New()
- Quantity = 1
- End Sub
- Public Property DateProvided() As Date
- Get
- Return mdtDateProvided
- End Get
- Set
- mdtDateProvided = Value
- End Set
- End Property
- End Class
这里要注意的是,上面的继承语句表明ServiceLine是LineItem的子类。而DateProvided属性是从LineItem类中加入的界面。