扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
面向对象的编程在VB4.0以后的版本已经使用。不幸的是,一些面向对象的特点比如说继承、方法重载、方法覆盖等并没有实现。
在VB.NET中,VB语言成为了完整的OO语言。一般说来,OO的编程语言支持四个主要的特点
Abstraction.抽象
Encapsulation.封装
Polymorphism.多态
Inheritance.继承
让我们概括的了解一下VB.NET的OO特点
抽象:
VB从VB4开始支持抽象。面向对象的第一步是有关实体的问题。在这里,提取对象必要信息的过程我们称为数据抽象。
封装:
封装允许我们隐藏类内部的完成细节。将数据和功能绑定到一起被称为封装。这是界面和实现分离的概念。封装也在VB4后实现。
多态:
多态也在VB4中实现。多态是面向对象系统中允许我们有多个不同的功能用同样名字的特性。功能的不同之处在于传递给它们的参数不同。事实上,VB通过两种方式支持多态
1、通过后期绑定
2、通过多界面的执行
继承:
。NET平台的一个大的提高就是使用继承的能力。VB5引入“interface inheritance”使VB开发者能够在一定程度上扩展已有对象。但是只能访问接口而不是底层的执行。
继承就是一个类能够得到一个现有的类的所有接口和行为。这样一个类被称为子类。当我们构造一个新类,它继承已有类的接口和行为,我们就创建了一个类的子类。
举一个VB5或VB6的例子,你可以创建一个"Employee",它有一些向姓名,地址等的属性。如果你想创建一个象 "Worker", " Officer"的新类或者别的什么,你不能简单的扩展已有的Employee类。作为替代,你可以选择复制代码到新的对象,或者使用委派技术,在VB.NET中我们拥有完全的继承。你可以继承Employee类,包括所有的正确代码包括效验、读取、存储。你可以为每一个Employee添加单独的特点。如果你需要改变标准的行为,你也可以覆盖、重载或隐藏基类的方法和属性。
覆盖:
使用同样的名字替换基类的方法或属性。
重载:
添加新的不同参数的实现方法
隐藏:
替换基类中同样名字的属性
继承也适用于象forms和controls之类的虚类。这可以使VB.NET创建一个基本的Form,包含corporate logos, standard menus, help systems等,然后继承它们,创建一个特定的Form,拥有与其他Form一样的外观和感觉。
Option Strict On
Imports System.Windows.Forms
Public Class Employee
Protected Count As Int32 ' available to descendants but not public
Public Overridable Sub funct1 ()
Count += 1
MessageBox.Show ("Employee funct1: " & Count.ToString, "Employee.funct1", MessageBoxButtons.OK)
End Sub
Public Overridable Sub funct2()
Count += 1
MessageBox.Show ("Employee funct2: " & Count.ToString, "Employee.funct2", MessageBoxButtons.OK)
End Sub
End Class
Public Class Officer
Inherits Employee
Public Overrides Sub funct2 ()
Count += 1
MessageBox.Show ("Officer: " & Count.ToString, "Officer.funct2", MessageBoxButtons.OK)
End Sub
Public Sub special () 'The function only for Officer.
Count += 1
MessageBox.Show ("Officer's special: " & Count.ToString, "Officer.special", MessageBoxButtons.OK)
End Sub
End Class
Module Module1
Sub Main()
Dim arun As officer
arun = New officer()
officer.funct2 ' will call the method defined in Officer
officer.funct1 ' will call the method defined in Employee
End Sub
End Module
防止继承:
我们创建的类默认的可以被作为基类使用。有时我想创建一个类,但是不能被继承。我们可以在类的声明时添加“NotInheritable”关键字:
Public NotInheritable Class arungg
……
End Class
当使用这个类时,没有别的代码可以使用Inherits关键字创建一个我们类的子类。
结论:
在VB.NET中,VB语言终于完整的转变为彻底的OO语言。我们现在有完整的inheritance,以及其他的特性。VB.NET不止是提供给我们完整的面向对象的特性,也改变我们以往使用VB6的一些方法。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。