VB.NET面向对象展现新能力
创始人
2024-06-20 13:40:33
0

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一样的外观和感觉。

  1. Option Strict On Imports System.
    Windows.Forms   
  2. Public Class Employee Protected   
  3. Count As Int32 '' available to 
    descendants but not public   
  4. Public Overridable   
  5. Sub funct1 ()   
  6. Count += 1   
  7. MessageBox.Show ("Employee 
    funct1: " & Count.ToString, 
    "Employee.funct1", MessageBox
    Buttons.OK)  
  8. End   
  9. Sub Public Overridable   
  10. Sub funct2() Count += 1   
  11. MessageBox.Show("Employee funct2: 
    " & Count.ToString, "Employee.
    funct2", MessageBoxButtons.OK)  
  12. End Sub   
  13. End   
  14. Class Public   
  15. Class Officer Inherits Employee 
    Public Overrides   
  16. Sub funct2 () Count += 1   
  17. MessageBox.Show ("Officer: " 
    & Count.ToString, "Officer.
    funct2", MessageBoxButtons.OK)  
  18. End   
  19. Sub Public   
  20. Sub special () ''The function 
    only for Officer  
  21. . Count += 1   
  22. MessageBox.Show("Officer''s 
    special: " & Count.ToString, 
    "Officer.special",  
    MessageBoxButtons.OK)    
  23. End Sub   
  24. End   
  25. Class Module Module1   
  26. Sub Main()   
  27. Dim arun As officer arun = 
    New officer()  
  28. officer.funct2   
  29. '' will call the method 
    defined in Officer officer.funct1   
  30. '' will call the method 
    defined in Employee   
  31. End Sub   
  32. End Module  

防止继承:

我们创建的类默认的可以被作为基类使用。有时我想创建一个类,但是不能被继承。

我们可以在类的声明时添加“NotInheritable”关键字:

  1. Public NotInheritable 
    Class arungg …… End Class  

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

结论:

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

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...