VB.NET这样一款由微软公司推出的编程语言,其功能是比较强大的。尤其是在面向对象方面,展现了非常重要的作用。面向对象的编程在VB4.0以后的版本已经使用。不幸的是,一些VB.NET面向对象的特点比如说继承、方法重载、方法覆盖等并没有实现。#t#
VB.NET中,VB语言成为了完整的OO语言。一般说来,OO的编程语言支持四个主要的特点:
◆Abstraction抽象
◆Encapsulation封装
◆Polymorphism多态
◆Inheritance继承
让我们概括的了解一下VB.NET的OO特点:
抽象:
VB从VB4开始支持抽象。VB.NET面向对象的第一步是有关实体的问题。在这里,提取对象必要信息的过程我们称为数据抽象。
封装:
封装允许我们隐藏类内部的完成细节。将数据和功能绑定到一起被称为封装。这是界面和实现分离的概念。封装也在VB4后实现。
多态:
多态也在VB4中实现。多态是VB.NET面向对象系统中允许我们有多个不同的功能用同样名字的特性。功能的不同之处在于传递给它们的参数不同。事实上,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", MessageBox
Buttons.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不止是提供给我们完整的VB.NET面向对象的特性,也改变我们以往使用VB6的一些方法。