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

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

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3685 更新时间:2009/4/23 19:01:08
a.display()
        a.close()
    End Sub
End Class

(2) 环境改变了﹐必须修正旧类别。
    例如﹕软件内含Sales 类别如下──

''''ex11.bas
Imports System.ComponentModel
Imports System.Drawing
Imports System.WinForms
''''----------------------------------------------------------------------------------
Class Sales
    Protected sum As Double
    Public Sub New()
        sum = 0
    End Sub
    Public Overridable Sub input(ByVal amount As Double)
        sum = sum + amount
    End Sub
    Public Sub display()
        Messagebox.Show("The Sum Is: " + str(sum))
    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 x As New Sales()
        x.input(3000.5)
        x.input(7999.5)
        x.input(15000)
        x.display()
    End Sub
End Class

此程序输出如下﹕The Sum Is: 26000

input() 输入销售金额﹐且将金额加总起来﹐存于 sum变量中。display() 显示出总金额。随着企业之成长﹐往往对软件之功能有新的需求。例如﹕希望程序输出平均销售额。此时﹐必须更新原来的软件﹐其方法有二﹕

(I) 改写 Sales类别之定义。
    此为传统软件之维护方法﹐就像一座房屋﹐已不敷使用﹐于是用推土机推掉﹐重建之。通常这种方法并不佳﹐原因是﹕旧的软件有些功能仍然可用﹐废弃重建实在可惜。若不想重建﹐只想去修改它﹐但是软件若很庞大﹐得浪费人力去了解旧软件的结构﹐弄通了之后﹐才能加以修正﹐显然不经济。进一步想﹐于修正之过程中﹐不经意而更动旧软件内仍可用之部分﹐则原来正确之功能﹐反而有遭破坏之虞﹗
(II) 藉继承关系修正 Sales类别。
    亦即定义 Sales之子类别﹐来修正及扩充 Sales之功能。此时﹐并未更动Sales 类别之定义﹐所以不会破坏 Sales之功能。既然保存原有的良好功能﹐又能增加新的功能﹐岂非两全其美呢﹖此「旧干发新枝」之景象即是千年神木得以茁壮且绿意盎然之道理﹐也正是 OOP魅力的源头。现在﹐就为 Sales定义个子类别叫 Sales_new如下﹕

''''ex12.bas
Imports System.ComponentModel
Imports System.Drawing
Imports System.WinForms
''''------------------------------------------------------------------------------------
Class Sales
    Protected sum As Double
    Public Sub New()
        sum = 0
    End Sub
    Public Overridable Sub input(ByVal amount As Double)
        sum = sum + amount
    End Sub
    Public Sub display()
        Messagebox.Show("The Sum Is: " + str(sum))
    End Sub
End Class

Class Sales_new
    Inherits Sales
   
    Protected number As Integer
    Public Sub New()
        number = 0
    End Sub
    Public Overrides Sub input(ByVal amount As Double)
        MyBase.input(amount)
        number = number + 1
    End Sub
    Public Sub display_average()
        Dim avg As Double
        If number > 0 Then
            avg = sum / number
            MessageBox.Show("The Average Is : " + str(avg))
        End If
    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 x As New Sales_new()
        x.input(3005.5)
        x.input(5994.5)
        x.input(15012.6)
        x.display()
        x.display_average()
    End Sub
End Class


此程序输出﹕
           The Sum Is: 24012.6
           The Average Is: 8004.2

    子类别增加了新数据项number﹐重新定义了input()﹐使新input()保存父类别内之input()功能﹐并加上number = number +1之运算。保留了父类别之display()﹐但增加了display_average()程序。依此方法﹐软件自然日益茁壮﹐且历久弥新﹗藉继承关系不断扩充乃为OOP之重要技术﹐盼您善用之。n

 


 

上一页  [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……
    咸宁网络警察报警平台