vb.net

位置:IT落伍者 >> vb.net >> 浏览文章

VB.NET的新的面向对象能力


发布日期:2018年05月25日
 
VB.NET的新的面向对象能力

面向对象的编程在VB以后的版本已经使用不幸的是一些面向对象的特点比如说继承方法重载方法覆盖等并没有实现

在VBNET中VB语言成为了完整的OO语言一般说来OO的编程语言支持四个主要的特点

Abstraction抽象

Encapsulation封装

Polymorphism多态

Inheritance继承

让我们概括的了解一下VBNET的OO特点

抽象

VB从VB开始支持抽象面向对象的第一步是有关实体的问题在这里提取对象必要信息的过程我们称为数据抽象

封装

封装允许我们隐藏类内部的完成细节将数据和功能绑定到一起被称为封装这是界面和实现分离的概念封装也在VB后实现

多态

多态也在VB中实现多态是面向对象系统中允许我们有多个不同的功能用同样名字的特性功能的不同之处在于传递给它们的参数不同事实上VB通过两种方式支持多态

通过后期绑定

通过多界面的执行

继承

NET平台的一个大的提高就是使用继承的能力VB引入interface inheritance使VB开发者能够在一定程度上扩展已有对象但是只能访问接口而不是底层的执行

继承就是一个类能够得到一个现有的类的所有接口和行为这样一个类被称为子类当我们构造一个新类它继承已有类的接口和行为我们就创建了一个类的子类

举一个VB或VB的例子你可以创建一个Employee它有一些向姓名地址等的属性如果你想创建一个象 Worker Officer的新类或者别的什么你不能简单的扩展已有的Employee类作为替代你可以选择复制代码到新的对象或者使用委派技术在VBNET中我们拥有完全的继承你可以继承Employee类包括所有的正确代码包括效验读取存储你可以为每一个Employee添加单独的特点如果你需要改变标准的行为你也可以覆盖重载或隐藏基类的方法和属性

覆盖

使用同样的名字替换基类的方法或属性

重载

添加新的不同参数的实现方法

隐藏

替换基类中同样名字的属性

继承也适用于象forms和controls之类的虚类这可以使VBNET创建一个基本的Form包含corporate logos standard menus help systems等然后继承它们创建一个特定的Form拥有与其他Form一样的外观和感觉

Option Strict On

Imports SystemWindowsForms

Public Class Employee

Protected Count As Int available to descendants but not public

Public Overridable Sub funct ()

Count +=

MessageBoxShow (Employee funct: & CountToString Employeefunct MessageBoxButtonsOK)

End Sub

Public Overridable Sub funct()

Count +=

MessageBoxShow (Employee funct: & CountToString Employeefunct MessageBoxButtonsOK)

End Sub

End Class

Public Class Officer

Inherits Employee

Public Overrides Sub funct ()

Count +=

MessageBoxShow (Officer: & CountToString Officerfunct MessageBoxButtonsOK)

End Sub

Public Sub special () The function only for Officer

Count +=

MessageBoxShow (Officers special: & CountToString Officerspecial MessageBoxButtonsOK)

End Sub

End Class

Module Module

Sub Main()

Dim arun As officer

arun = New officer()

officerfunct will call the method defined in Officer

officerfunct will call the method defined in Employee

End Sub

End Module

防止继承:

我们创建的类默认的可以被作为基类使用有时我想创建一个类但是不能被继承我们可以在类的声明时添加NotInheritable关键字

Public NotInheritable Class arungg

……

End Class

当使用这个类时没有别的代码可以使用Inherits关键字创建一个我们类的子类

结论

在VBNET中VB语言终于完整的转变为彻底的OO语言我们现在有完整的inheritance以及其他的特性VBNET不止是提供给我们完整的面向对象的特性也改变我们以往使用VB的一些方法

上一篇:VB.NET表单自动提交实现方案剖析

下一篇:用VB.net2008编写幻灯片程序