- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VB_NET(chapter13).ppt
Visual Basic. NET 程序设计 第13章 继承 内容提要 继承与派生 重载与覆盖 虚拟方法与隐藏 基类、类和对象 构造函数与继承 成员的作用域 事件和共享方法的继承 抽象基类 利用继承性,可以在已有类的基础上构造新类。这一性质使得类支持分类的概念。在日常生活和工作中,很多知识之所以易于维护,与其好的层次分类有一定关系。 为了支持继承,Visual Basic .NET引入了下列类级语句和修饰符: Inherits语句:用来指定基类。 NotInheritable修饰符:该类不能用作基类,即不允许再被继承。 MustInherit修饰符:指定该类只能用作基类。类的非共享成员只能借助于派生类访问,不能直接建立MustInherit类的实例,只能将它们建立为派生类的基类实例(在C++或C#中,这样的类被称为“抽象类”)。 13.1 继承与派生 如前所述,一个类可以继承另一个类的属性。其中被继承的类叫做基类(Base class)或父类(Parent class),继承后产生的类叫做派生类(Derived class)或子类(Child class)。 派生类(子类)是Visual Basic.NET提供继承的基础,也是对原有的类进行剪裁的一种基本手段。Visual Basic.NET派生类继承或修改原有类中的部分或全部方法,而且可以增加原有类中没有的新方法,以满足使用派生类的需要。 13.1.1 基类与派生类 可以把派生类看作是对基类的扩展,它提供了一个简单、灵活且有效的机制。派生类从基类中继承所有的公共部分,并可增加数据成员和方法成员。 继承是指一个新类(派生类)能够以一个现有类(基类)为基础,从原始类中继承其接口和功能。任何类都可以作为基类,一个基类可以有一个或多个派生类,一个派生类可依次成为另一个类的基类。 从本质上来说,类就是一个模板,可以在这个模板上建立对象 在建立了一个基类的派生类后,就可以有效地将这两个类合并到一起 13.1.2 继承的实现 从某种程度上说,继承是一个将现有类(基类)的功能合并到子类(派生类)中的过程。 为了通过继承实现一个类,必须先建立基类。有了基类之后,就可以在这个基类的基础上派生出一个或多个子类,每个子类都自动拥有基类的属性、方法和事件(包括相应的执行代码),而子类还可以增加自己的属性、方法和事件。此外,如果需要,子类还可以用自身的方法和属性代替基类中的方法和属性。 13.2 重载与覆盖 前一节通过一个例子介绍了类的继承。在Visual Basic.NET类的继承中,第一步是将基类的成员全盘接收,这样,派生类实际上就包含了基类中除构造函数之外的所有成员。 除全盘接收外,在派生过程中还可以对基类中的成员进行改造,这主要包括两个方面,一个是基类成员的访问控制,它通过声明类时的继承方式来控制,第二个是对基类数据或方法成员的重载和覆盖。 13.2.1 方法重载 在一般情况下,子类中新增加的方法与父类中的方法具有不同的名称。 子类中的方法重载与普通方法的重载是类似的,其基本规则完全相同,使用的关键字仍然是OverLoads。但有两点不同: 其一,普通重载是重载同一个类中的方法,而子类中要重载的是基类中的方法; 其二,普通重载的每个重载方法中都要有OverLoads关键字,而当需要重载基类中的方法时,可以只在子类的重载方法中有OverLoads关键字,基类的重载方法中的OverLoads关键字可以省略(注意,是“可以”省略,不是“必须”省略,如果加上也是允许的)。 13.2.3 扩展式覆盖与覆盖重载 13.3 虚拟方法与隐藏 在调用普通方法时,编译系统可以明确地知道所要调用的方法,因为它是唯一的。即使是重载方法,也可以通过参数个数或参数类型加以区分。但是,对于同名覆盖的方法,编译系统如何区分呢?。在Visual Basic.NET中,把同名覆盖方法称为虚拟方法。这一节我们将介绍虚拟方法,同时介绍隐藏(Shadows)。 13.3.1 虚拟方法 简单地说,虚拟方法是指能够通过子类进行覆盖和替换的方法。换言之,所谓虚拟方法,就是在基类中使用了Overridable关键字、而在子类中使用了Overrides关键字的方法。 对于非虚拟方法(包括重载方法)来说,每个方法的名字对应着唯一的实现代码,只要给出方法名称,要调用哪个具体方法的实现代码是没有歧义的。虚拟方法只有一个名称,参数也一样,但有两种或多种实现代码。因此,在使用虚拟方法时,应当知道要调用该方法的哪一种具体实现代码 13.3.2 隐藏 当两个编程元素共用同一个名称时,其中的一个可以隐藏,在这种情况下,隐藏的元素不能引用。一个元素可以用两种不同的方式隐藏另一个元素,一种是通过作用
文档评论(0)