您现在的位置是: 软件 > 开发者网络 > 程序方舟 > 开发专栏 > VB开发 > 正文
·速成电脑精英(包分配)白领高薪一族从这里开始



-Java套接字编程(下)
-MediaStudio Pro 6.5教程
-三款卸载软件最新试用
-基于Visual C++的Winsock API研究

VB.NET面向对象的程序设计语言
2001-10-15· ·Crystal编译··Yesky

上一页  1 2 3 4 5  


  构造器

  构造器是一种特殊的方法,在类初始化时必须使用构造器。在vb.NET中称为new方法,但是正如你看到的,在前面的代码中没有一个new方法,是的,在没有出现构造器时,vb.NET将为你创建一个。当你使用new关键字初始化一个对象时,类构造器被调用。当初始化对象时,你能够提供初始化代码以保证对象运行。

  如果使用了关键字new,调用了类构造器,vb.NET将不再为你创造一个。

  继承

  继承是一个这样的特征即允许你扩展类,如果你需要一些功能,你可以创造一个新类,如果你需要的功能中的部分功能已经能由一个已经存在的类提供了,你可以扩展原来的那个类来构建一个新类。那么你新建的这个类成为子类或者继承类,原来的那个类称为父类或者基类。扩充类的过程称为扩展,有时术语subclass或inherit 用于描述扩展类的行为。在vb.NET中一个类只能有一个父类,多个父类的情况是不允许的。

  在语法构成上,声明一个扩展类在类名后面使用分号,分号后面使用Inherits和父类名,例如,扩展类Employee创建一个新类Manager,代码如下

Listing 9: Extending a class

Imports System

Class Employee

 Dim salary As Decimal = 40000
 Dim yearlyBonus As Decimal = 4000

 Public Sub PrintSalary()
  ' print the salary to the Console
  Console.Write(salary)
 End Sub

End Class

Class Manager: Inherits Employee
End Class

  如果单词Inherits 显示在下一行,那么就不需要分号,如:

Class Manager
   Inherits Employee
End Class

  现在你可以初始化一个Manager对象,使用Manager对象中的成员,如下面的代码

Listing 10: 初始化Manager对象

Class Employee

 Public salary As Decimal = 40000
 Public yearlyBonus As Decimal = 4000

 Public Sub PrintSalary()
  ' print the salary to the Console
  Console.Write(salary)
 End Sub

End Class

Class Manager: Inherits Employee
End Class

Module Module1
Public Sub Main()
 Dim manager As Manager
 manager = New Manager()
 manager.PrintSalary()
End Sub
End Module

  下面的例子中显示了在manage类中添加一个新方法PrintBonus

Listing 11: Adding a method to the derived class

Class Manager: Inherits Employee
 Public Sub PrintBonus()
  Console.Write(yearlyBonus)
 End Sub
End Class


  注意成员访问限制的使用,比如说如果设定yearlyBonus域为私有,那么manage类就不能访问他,否则在编译时就会得出错误结论。

  继承只是一个普通的实践。事实上,.NET Framework类库由不同层次的类组成,他们分别继承于其他的类。比如,Windows.Forms名字空间中的button类是ButtonBase类的子类,而ButtonBase类本身又是Control类的子类,所有类最终都以System.Object作为他们的根,在.NET Framework类库中System.Object又称为根或者超类。

  list12示范了继承强大的能力。


Listing 12: Extending System.Windows.Forms.Form

Public Class MyForm : Inherits System.Windows.Forms.Form
End Class

  声明的这个空白类,经编译执行后生成一个windows表单,你一行代码都用不作写就可以创建一个表单,这是因为myform继承于System.Windows.Forms.Form,他也继承了form的功能。

  NotInheritable类

  要使你的类不能够被继承,可以使用关键字NotInheritable。例如list13中的类Calculator就不能被继承

Listing 13:
NotInheritable Class Calculator
End Class

  如果试图扩展这个类将产生一个编译错误,那么既然继承有这么大的好处,为什么要让类不能被继承呢?其中一个原因是你不想让你的类被其他人扩展,另外一个原因是继承类产生了更快的代码。无论如何你应该谨慎的使用继承类,因为它可能导致面向对象编程的主要目的的失败。

  还有一种类叫final类,他和其他面向对象语言中的final类相同。

  结论

  vb.NET支持众多的面向对象的特征,本文显示了vb.NET的不同特征,并提供了13个例子,可以以此开始学习vb.NET。



上一页  1 2 3 4 5  

【责任编辑:方舟】
【发表评论】【关闭窗口】
■ 相关内容
 VB.NET注册表编程
 用Visual Basic .Net发送电子邮件
 用Visual Basic.Net创建多线程应用程序
 在VB.NET中使用抽象类
 VB.NET开发互联网应用
 VB.NET中的变化
 体验Visual Basic升级向导
 VB.NET中的多线程开发
 深入浅出VB.Net Windows Form
 深入研究VB.Net远程调用对象的机制
 Visual Basic.Net语言革新
 概述从VB6到 VB.NET 的 变化
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!