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

开发 后端
面向对象的编程在VB4.0以后的版本已经使用。不幸的是,一些面向对象的特点比如说继承、方法重载、方法覆盖等并没有实现。本文将简单谈谈VB.NET新的面向对象能力。

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的一些方法。

【编辑推荐】

  1. 浅谈VB.NET中的跨进程消息钩子
  2. VB.NET中的动态代码生成技巧
  3. C#和VB.NET类型相关知识汇总向
  4. VB.NET中有用的通用对象列表
  5. VB.NET和C#逐层横向对比
责任编辑:彭凡 来源: IT168
相关推荐

2010-01-13 11:18:24

VB.NET面向对象

2009-10-13 17:03:55

VB.NET面向对象

2009-11-02 16:22:16

VB.NET面向对象

2009-10-13 14:19:03

VB.NET面向对象编

2009-10-13 11:28:39

VB.NET面向对象编

2009-10-14 12:51:41

VB.NET Data

2009-10-20 09:39:04

VB.NET Butt

2009-10-28 10:31:23

VB.NET Impl

2009-10-13 11:22:46

VB.NET调用Web

2009-10-12 13:32:58

VB.NET线程构造器

2009-10-16 10:14:26

VB.NET使用Fil

2009-10-14 13:21:46

VB.NET Acco

2009-11-04 13:12:33

VB.NET面向对象编

2009-10-09 15:59:41

VB.NET对象

2010-01-22 15:56:03

VB.NET获取当前U

2009-11-03 13:54:55

VB.NET继承

2009-10-19 11:28:42

VB.NET语言.NET开发语言

2009-10-23 14:06:07

VB.NET类对象

2009-10-12 16:39:59

OracleTransVB.NET使用

2010-01-22 13:28:13

VB.NET对象克隆
点赞
收藏

51CTO技术栈公众号