第6章 继承、抽象类、多态及接口.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 继承、抽象类、多态及接口

Visual C#程序设计与项目实践 第6章 继承、抽象类、多态及接口 继承、抽象类、多态及接口,都是面向对象思想的重要组成部分。而封装、继承和多态是面向对象的最为重要的特征。可以将封装、抽象类和接口看作是完成继承和封装的一种手段。 重点内容: 类的继承 抽象类 多态 接口 一、 继承简介 1. 继承的应用 继承是面向对象中不可或缺的一部分。在现实生活中,会遇到将一类东西分为不同的子类的情况。比如,猪、羊、牛等动物都具有哺乳动物的特征,可以说猪、牛、羊继承了哺乳动物的特性。这里的动物继承关系和C#语言中的继承类似。 继承是允许重用现有类去创造一个新类的过程。分类的原则是:一个类派生出来的子类具有这个类的所有公共属性。比如交通工具中的汽车、汽车中有卡车、轿车等,都具有诸如车轮、发动机、方向盘和可以行驶的属性。此外,子类还具有自身的特性。例如卡车提供装货空间,轿车提供载人空间。所以轿车和卡车都可以称为是汽车的子类。 一、 继承简介 1. 继承的应用 对于一类事务,在其所属的大类已经定义好的前提下,可以根据所属的大类将其定义。而且不用具体描述其所属大类的特性。比如要描述“学生”这个类,知道“学生”已经属于“人”这个类了,就不用描述“学生”有两只眼睛、两只耳朵等,只需要描述学生本身特有的属性,比如,上课、学习等。同样,在编程中也一样,继承遵循代码重用的原则。教师和学生都是继承自人这个大类中,继承关系如图6.1所示。 图6.1 继承关系图 一、 继承简介 2. 基类和派生类 继承是一个新类从已有类继承一些特性。从另一个角度看,已有类也就是通常所说的基类或父类,产生出一个新类也就是所说的子类的过程叫做派生。 把已有类作为基类,派生出的类为子类。例如下面的代码,类A作为已有类,类B作为类A的派生类,而类C为类B的派生类。请看以下代码示例: class A{} //声明类A class B : A{} //类B继承类A class C : B{} //类C继承类B 一、 继承简介 2. 基类和派生类 定义派生类和创建派生类对象,在.NET类库中,有许多类可以作为基类,这些基类可以被其他类继承,以产生派生类。例如,当创建一个应用程序时,在窗体设计器中显示的窗体就是一个派生类,这个窗体就是Form的派生类,而代码窗口则是这个派生类的定义。在这个类定义中,很多代码都是由集成开发环境自动生成的。而C#程序设计者所要做的是在这个派生类定义中添加自己的代码,实现所需的功能。派生类定义的语法格式如下: public class 派生类名称:基类名称{类体} 一、 继承简介 3. 调用基类构造方法 base关键字用于从派生类中访问基类成员。即使基类的方法已在派生类中重写,仍可以使用base关键字调用。在创建派生类的实例时,可以使用base关键字调用基类的构造方法。使用base关键字只能访问基类的构造方法、实例方法或实例属性,不能访问基类的静态方法。向基类构造方法传递参数的格式如下: public派生类构造方法名称(形参列表) :base(向基类构造方法传递的实参列表){} 一、 继承简介 3. 调用基类构造方法 例如定义动物类(Animal)和猫类(Cat),其中动物类中包括年龄(age)成员变量,和为年龄赋值的构造方法。猫类继承自动物类,包括成员变量猫的昵称(petName)。在猫类中不用再定义年龄字段,但是想初始化时为年龄赋值,就可以使用关键字base调用基类的构造方法,代码如下所示: public Cat(int age,string petName) : base(age) 一、继承简介 4. 虚方法和重写方法 在通常情况下,派生类继承基类的方法。在调用对象继承方法时,调用和执行的是基类的实现。但有时需要对派生类中的继承方法有不同的实现。假设动物类有“跑”的方法,兔子和马跑的是各不相同。因此,同一方法需要有两种不同的实现,这就需要“重新编写”基类中的方法。 “重写”基类方法就是修改其实现或者说在派生类中对基类方法进行重新编写。虚方法和重写方法是对应的,在基类中使用关键字virtual来修饰的方法就是虚方法。在派生类中对应的使用关键字override修饰的同名方法就是重写方法。 二、抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,反之不然,并不是所有的类都是用来描绘对象的。如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。例如,计算平面图形面积不可能有具体实现的方法,只有计算具体某一平面图形的方法。如矩形、圆、三角形的面积可以计算,而平面图形的面积无法计算,因为其是抽象的。抽象类往往用来表示在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档