vb.net对象扩展 vbnet object类型( 二 )


VB获得了继承能力
VB.NET预期拥有的第一新功能就是继承能力 。继承是VB开发者长期以来要求得最多
的功能 。判断一下对继承的要求是不是像早些时候对本地化编译器的要求一样将是一件
很有意思的事,后者,当Microsoft提供了一个以后 , 你就几乎听不到多少这方面的言语
了 。
Visual Basic现在是真正的面向对象语言了 。过去,你可以通过使用VB的界面继承
性创建伪实现的对象继承,但现在不必这样做了 。
Visual Basic.NET 现在提供大量面向对象功能,包括应用程序继承 , 它允许你从其
它类导出你想创建的类 。像在其它面向对象语言里一样,你能覆盖基类的方法和属性,
并且能实现多态以创建健壮的、扩展性好的组件 。例如,假定你从基类 Crane里继承产
生了一个ForkLift类,你能使用像下面的代码覆盖基类里对Lift方法的默认实现:
Public Class ForkLift
Inherits Crane
Overrides Sub Lift(ByRef _
Height As Double)
Height = Height + 10
End Sub
End Class
VB.NET不仅能让你覆盖方法或属性vb.net对象扩展;它还能让你重载方法 。重载是定义同名、但使
用不同数据类型的方法或属性的能力 。例如,假定你有一个组件能对不同数据类型的数
组进行排序 , 你不需要三个(每种数据类型一个)不同名的方法;实际上你可以重载一个
方法名:
Overloads Sub SortArray(ByRef _
aValues()As String)
...
Overloads Sub SortArray(ByRef _
aValues() As Integer)
...
Overloads Sub SortArray(ByRef _
aValues() As Object)
另一个改变是:表单现在是类模块 。这就是说类本身包含建立表单的所有“肥料”
的代码 。你可能想知道,为什么你不得不看到这些从前不用看的代码,但这个改变同时
带来强大的新功能,包括继承这些表单的能力 。Microsoft把这一技术称为可视化继承 。
假定你的对话框有一种标准的格式,例如在表单的一侧有一行按钮,并在角上有一个标
识,那么,通过可视化继承你能创建一个表单模板(类),并从这个基类里导出所需的表
单 。
一切都是对象
代码复用简化了开发过程,像实现和可视化继承这样的功能有利于更简单、更强大
的代码复用 。然而,代码复用并不是到此为止 。你能通过支持VB.NET的通用语言运行库
(Common Language Runtime - CLR)继承在其它 VS.NET 语言里定义的类 。例如,你或别
人创建了一个 C# 类,然后就能从 VB 里继承它 。
VB.NET 的面向对象能力扩展了语言本身的通路:一切都是对象 。这意味着比在以前
的 VB 版本里,你获得了更多的内在功能,你将很少被迫使用 Windows API 。例如,在
以前的 VB 版本里,你使用 LoadPicture 方法加载图片并使用表单的 Line 方法(或较
快的 API) 画线 。现在,你使用 System.Drawing 对象来创建并处理图形 。你可以使用
以下代码在表单上显示一幅图片:
picshowpicture.Image = _
system.Drawing.Image.FromFile( _
"c:\test.bmp")
注意 VB.NET 的“一切都是对象”方式让你的语句能用得更长久 。
考虑以下语句,它在一个图形对象上画一条黄绿色的线:
objgraphics.DrawLine(system.Drawing. _
Pens.Chartreuse, 0, 0, 100, 100)
这些长长的语句也有好处:改进的功能、适应性和易用性 。从前 , 你要实现先进的
功能就不得不在文档中挖掘,经常是不得不诉诸API 。现在,相关的功能集符合逻辑地包
含在对象里 。这种处理方式的另外一个好处就是:类把相关的功能很好的组织了起来 。

推荐阅读