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

前端之家收集整理的这篇文章主要介绍了VB.NET的新的面向对象能力前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

面向对象的编程在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的一些方法

原文链接:https://www.f2er.com/vb/262814.html

猜你在找的VB相关文章