VB 2010 (17)继承

本文介绍了VB 2010中的继承概念,展示了如何创建基类和子类,以及如何利用`Inherits`关键字进行继承。通过Employee类继承Person类的例子,解释了继承如何实现`is-a`关系。文章还探讨了重载方法,特别是`Dictionary`类在多值属性中的应用,并展示了如何通过`Overridable`和`Overrides`关键字重写基类方法,强调了重写方法在扩展功能和修改行为方面的重要性。" 133060793,20015080,Qt Creator快捷键提升开发效率,"['Qt', '开发工具', 'C++', '集成开发环境', '编程效率']
摘要由CSDN通过智能技术生成

    继承是指一个新类以一个现有类为基础,继承现有类的接口和功能。
    可以以这样的方式来考虑继承,在创建一个继承自Person类的Employee类时,就是将这两个类有效地合并到一起。如果创建一个基于Employee类的对象,它不仅获得Employee类中的接口(属性、方法和事件)和实现代码,也会自动获得Person类的接口和实现代码。
    从外部来看,和Employee对象交互的客户端代码将看到一个独立的、体现了Employee类和Person类合并的对象。
    从内部来看,Employee类中的代码和Person类中的代码没有完全混合在一起。私有变量和方法只能在编写它们的类中使用。一个类中的公共变量和方法可以从其他类中调用。声明为Friend的变量和方法只能由同一个Visual Basic项目的类使用。还有一个与继承相关的Protected作用域,它提供了一个类与另一个类中的变量和方法进行交互的受控方式。
    Visual Studio 2010提供了Class Designer工具,可用于方便地创建类图和处理类之问的关系。Class Designer使用标准的统一建模语言(UML)来描述类、对象以及其他面向对象概念之问的关系。Person类、Employee类和customer类之间的关系如图:

    继承关系也称为"is-a"关系。当创建一个继承于Person类的Customer类时,Customer是一个Person。Employee也是一个Person,因而拥有这种“is-a”关系。多接口能够用于实现某种和"is-a”相似的关系——“act-as”关系。
    使用继承创建的类,从现有的类中继承了行为和数据。这个现有的类称为基类,也称作超类或父类。
    使用继承创建的类是以父类为基础的,称为子类,有时也称为派生类。事实上,子类继承基类的过程常常称为派生。从基类中派生一个新类,这个过程也称为子类化。
1.创建基类

Public Class Person
    Public Property Name As String
    Public Property BirthDate As Date
End Class
2.创建子类

Public Class Employee
    Inherits Person

    Public Property HireDate As Date
    Public Property Salary As Date

End Class
        当使用Inherits关键字继承当前项目外部的类时,需要指定包含该类的名称空间,或者在类的顶端用一条Imports语句来导入要使用的名称空间。
    客户端测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
'------------------------------------------------------------------------------------------------------------------------------------------ '本示例旨在向您展示如何在VB6下实现真正的继承,如何使用DyCOMHelper创建类,并使用,它将带您进入VB6背后的COM世界,看看我们的类是如何运行的。 'DyCOMHelper创建的对象的特点: '1、可以像VB6下定义的对象一样去使用,虽然不是VB6机制创建,但是可以被VB6当作对象来识别使用。 '2、支持后期绑定,支持错误处理,支持多接口等常规应用。 '3、支持真正意义上的继承,本示例将说明这一点。 '4、所创建的对象是轻量对象,实例占用的起步空间更小,约VB类的1/5。 '5、函数调用速度高出20% 左右 '6、实例创建的速度,最大可以提高近10倍 '7、释放速度,最大可以提高近100倍。(以上速度来自于极限测试数据) '8、创建模式比VB6更丰富,VB6的类实例,是在堆上进行创建的,效率很低,DyComHelper可以选择堆、堆栈是进行创建,也可以从某个结构上创建,也可以用内置的定长管理器进行创建。 '9、从类实例外部,访问内部数据时,支持真正意义的指针式访问。 '10、使用DyCOMHelper创建类,将让您的系统支持成千上万个类,而不会担心效率问题。 ' '读这个示例您可能会问的问题: ' 1、类型库,怎么来的?目前是我使用工具手动创建。未来,我将推出VB6插件,在VB6下直接书写代码生成类型库并自动引用。 ' '使用前,请先执行下列顺序: ' 1、引用 Types目录下 DyCOMHelperType.tlb,TestInheritLib.tlb。 ' 2、按F8开始逐步断点执行,看看它是如何工作的。 '示例中,有三个类,Animal、Wolf、Demiwolf,分别是动物、狼、狼狗,狼狗继承自狼,狼继承自动物,动物派生自IDispatch。 '------------------------------------------------------------------------------------------------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值