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。现在,相关的功能集符合逻辑地包含在对象里。这种处理方式的另外一个好处就是:类把相关的功能很好的组织了起来。所以,浏览你感兴趣的对象,发现它们做些什么实际上很有意思。
Visual Basic.NET 的面向对象功能提供了很多实在的好处。很多情况下,VB.NET 面向对象的本质和实现的继承性能帮助你比在以前的 VB 版本里更容易、更迅速地创建特定类型的功能。然而,你不一定要仅仅因为你能做到,就使用实现继承性或其它 .NET 功能。VB.NET 的新功能使开发许多类型的应用程序变得更简单!但是,就像使用所有的语言能力一样,你需要使用的是在特定场合下最适合的功能。