转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
VB.Net中文教程(4) 类别继承(Inheritance)关系         ★★★★

VB.Net中文教程(4) 类别继承(Inheritance)关系

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3690 更新时间:2009/4/23 19:01:08
bsp; Public Sub Display()
        Messagebox.Show("Name: " + name + "   Age: " + str(age))
    End Sub
End Class

Public Class Teacher
    Inherits Person
   
    Private salary As Decimal
    Public Sub tr_SetValue( ByVal na As String, ByVal a As Integer, ByVal
                        sa As Decimal)
        SetValue(na, a)
        salary = sa
    End Sub
    Public Sub pr()
        MyBase.Display()
        Messagebox.Show("Salary: " + str(salary))
    End Sub
End Class
''''-----------------------------------------------------------------------------------------------------
Public Class Form1
    Inherits System.WinForms.Form
   
    Public Sub New()
        MyBase.New()
        Form1 = Me
        ''''This call is required by the Win Form Designer.
        InitializeComponent()
        ''''TODO: Add any initialization after the InitializeComponent() call
    End Sub
    ''''Form overrides dispose to clean up the component list.
    Public Overrides Sub Dispose()
        MyBase.Dispose()
        components.Dispose()
    End Sub
#Region " Windows Form Designer generated code "
     ........
#End Region
    Protected Sub Form1_Click( ByVal sender As Object, ByVal
                            e As System.EventArgs)
        Dim steven As Teacher
        steven = New Teacher()
        steven.tr_SetValue("Steven", 35, 35000)
        steven.pr()
    End Sub
End Class

此程序输出如下﹕
Name: Steven     Age: 35
Salary: 35000

现在﹐Teacher 类别含有三个资料成员﹕
       1. name ──从Person类别继承而来。
       2. age ──从Person类别继承而来。
       3. salary ──自己定义的。

此外﹐也含有五个程序成员﹕
       1. SetValue() ──从Person继承而来。
       2. birthYear()──从Person继承而来。
       3. Display() ──从Person继承而来。
       4. tr_SetValue()──自己定义的。
       5. pr()──自己定义的。

    由于SetValue()为 Teacher之程序成员﹐所以tr_SetValue()能直接呼叫SetValue()来设定name及age值﹔之后﹐tr_SetValue()自己设定salary之值。同理﹐pr()能直接呼叫 Display()来显示name及age之内容﹔之后﹐pr()自己输出salary之值。也许﹐您会问道﹕子类别自己定义之程序﹐是否能与父类别之程序同名称呢﹖答案是肯定的﹐而且是常见之写法。如果名称相同但是参数不一致(像参数个数不同或参数型态不同),就是父子类别之间的程序多重定义(Procedure Overloading)了,必须写上Overloads字眼。例如﹕上述程序相当于──

''''ex04.bas
Imports System.ComponentModel
Imports System.Drawing
Imports System.WinForms
''''------------------------------------------------------------------------------------------
Class Person
    Private name As String
    Private age As Integer
    Public Sub New()
    End Sub
    Public Sub SetValue(ByVal na As String, ByVal a As Integer)
        name = na
        age = a
    End Sub
    Public Function birthDay() As Integer
        birthDay = 2001 - age
    End Function
    Public Sub Display()
        Messagebox.Show("Name: " + name + "   Age: " + str(age))
    End Sub
End Class

Class Teacher
    Inherits Person
   
    Private salary As Decimal
    Public Overloads Sub SetValue( ByVal na As String, ByVal a As Integer, ByVal
                               sa As Decimal)
        SetValue(na, a)
        salary = sa
    End Sub
    Public Sub pr()
        MyBase.Display()
        Messagebox.Show("Salary: " + str(salary))
    End Sub
End Class
''''------------------------------------------------------------------------------------------
Public Class Form1
    Inherits System.WinForms.Form
   
    Public Sub New()
        MyBase.New()
        Form1 = Me
        ''''This call is required by the Win Form Designer.
        InitializeComponent()
        ''''TODO: Add any initialization after the InitializeComponent() call
    End Sub
    ''''Form overrides dispose to clean up the component list.
    Public Overrides Sub Dispose()
        MyBase.Dispose()
        components.Dispose()
    End Sub
#Region " Windows Form Designer generated code "
       ........
#End Region
    Protected Sub Form1_Click( ByVal sender As Object, ByVal
                            e As System.EventArgs)
        Dim steven As Teacher
        steven = New Teacher()
        steven.SetValue("Steven", 35, 35000)
        steven.pr()
    End Sub
End Class

此程序输出如下﹕
                   NAME: Steven
                   AGE : 35
                   Salary: 35000

此种情况﹐Teacher 类别拥有两个 SetValue()程序﹐一个由Person继承而来﹐一个是自己定义的。同时﹐也拥有两个Display()程序。此时﹐计算机如何分辨它们呢﹖计算机依据程序的参数来决定呼叫那一个程序,当您写成 steven.SetValue("Steven", 35, 35000)时,此SetValue()是子类别自己的SetValue()。而写成SetValue(na,a)时,则是由Person类别继承而来之SetValue()程序。此VB程序已定义如下之类别关系﹕

                   
接下来﹐再为Person定义一个子类别── Student。程序如下﹕

''''ex05.bas
Imports System.ComponentModel
Imports System.Drawing
Imports System.WinForms
''''------------------------------------------------------------------------------------------
Public Class Person
    Private name As String
    Private age As Integer
    Public Sub New()
    End Sub
    Public Sub SetValue(ByVal na As String, ByVal a As Integer)
        name = na
        age = a
    End Sub
    Public Function birthDay() As Integer
        birthDay = 2001 - age
    End Function
    Public Sub Display()
        Messagebox.Show("Name: " + name + "   Age: " + str(age))
    End Sub
End Class

Public Class Teacher
    Inherits Person
   
    Private salary As Decimal
    Public Overloads Sub SetValue( ByVal na As String, ByVal a As Integer, ByVal
                               sa As Decimal)
        SetValue(na, a)
        salary = sa
    End Sub
    Public Sub pr()
        MyBase.Display()
        Messagebox.Show("Salary: " + str(salary))
    End Sub
End Class

Public Class Student
    Inherits Person
   
    Private student_number As Integer
    Public Overloads Sub SetValue( ByVal na As String, ByVal a As Integer, ByVal
                     

上一页  [1] [2] [3] [4] [5] [6]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台