Java程序设计教程 工业和信息化普通高等教育十二五 规划教材 教学课件 作者 段新娥 贾宗维 2_ chap4.pptx

Java程序设计教程 工业和信息化普通高等教育十二五 规划教材 教学课件 作者 段新娥 贾宗维 2_ chap4.pptx

ID:51777451

大小:686.42 KB

页数:67页

时间:2020-03-07

Java程序设计教程 工业和信息化普通高等教育十二五 规划教材 教学课件 作者 段新娥 贾宗维 2_ chap4.pptx_第1页
Java程序设计教程 工业和信息化普通高等教育十二五 规划教材 教学课件 作者 段新娥 贾宗维 2_ chap4.pptx_第2页
Java程序设计教程 工业和信息化普通高等教育十二五 规划教材 教学课件 作者 段新娥 贾宗维 2_ chap4.pptx_第3页
Java程序设计教程 工业和信息化普通高等教育十二五 规划教材 教学课件 作者 段新娥 贾宗维 2_ chap4.pptx_第4页
Java程序设计教程 工业和信息化普通高等教育十二五 规划教材 教学课件 作者 段新娥 贾宗维 2_ chap4.pptx_第5页
资源描述:

《Java程序设计教程 工业和信息化普通高等教育十二五 规划教材 教学课件 作者 段新娥 贾宗维 2_ chap4.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章继承和多态继承4.1多态4.2非访问控制符4.4包及访问控制4.3第五章目录应用实例4.7接口4.5常用类介绍4.64.1继承4.1.1继承的基本概念4.1.2java继承的实现4.1.3方法覆盖4.1.4成员隐藏继承,顾名思义,就是将父亲的东西继承过来,成为己有。Java中所谓继承,就是程序员在构造类时,把实体中相同的部分先抽象出来定义为一个类,如果需要新类,在不改变原类的基础上再增加新的内容,构造成一个新类,新类可以继承原类的所有非私有的数据成员和方法。原类称为基类、超类或父类;新类称为派生类或子类。举个例子:如果已经充分认识了马的特

2、征,现在要叙述“白马”的特征,显然就不必从头介绍什么是马,而只是说明“白马是白色的马”即可。“白马”继承了“马”的基本特征,又增加了新的特征颜色,“马”是父类,或称为基类、超类,“白马”是从“马”派生出来,称为子类或派生类。生活中继承的例子随处可见。如图4-1所示是现实生活的几类动物。4.1.1继承的基本概念正是因为有了继承,自然界的一切生物才保持了物种的延续。面向对象语言中,也正是因为有了继承,才可以支持更丰富、更强大的建模,使得代码重用、软件质量有了更稳定的提高,程序结构清晰,降低编码和维护的工作量。在Java语言中,引入继承机制,使类间具

3、有严格的层次体系。例如,电话卡可以定义一个类,它又可以细分为无卡号电话卡类和有卡号电话卡类,无卡号电话卡类又可以进一步细划成IC卡和磁卡;无卡号的电话卡可以细划成201卡、200卡、900卡等。作为电话卡,它们都有余额和支费、显示余额等特性,而无卡号电话卡类和有卡号电话卡它们又有自己的特性,如有卡号电话卡一般还需要有卡号和密码,而无卡号的电话卡则不需要这些信息,就能拨打对方号码。它们的类层次结构如图4-2所示。图4-2电话卡类层次图图4-2中,粗体部分:从父类中继承的数据成员或方法,其余为自己新增加的数据成员或方法。无卡号电话卡和有卡号电话卡是

4、电话卡的子类,它们继承了父类电话卡的数据成员balance和方法performDial()、getbalance(),在此基础上,无卡号电话卡添加了自己的数据成员phoneSetType、方法getSetType();有卡号电话卡添加了自己的数据成员connect、cardnumber、password、方法connect()。进一步细划,无卡号电话卡又IC卡和磁卡电话卡两个子类,它继承了父类的balance、phoneSetType数据成员和performDial()、getbalance()、getSetType()方法,添加了自己的方法s

5、howbalance();有卡号电话卡派生出IP、200电话卡两个子类,它继承了父类的balance、cardnum、connect、password数据成员和performDial()、connect()、getbalance()方法,分别添加了自己的数据成员expireDate、additoryFee。各类之间建立继承关系后,有了父类,在定义子类时,只需添加新增属性,父类中的属性通过继承直接获取。从图中可以得出以下结论:(1)如果类B是类A的子类,则类B继承了类A的数据成员和方法。在子类B类中,包含了两部分内容:从父类A中继承下来的数据成员

6、和方法以及自己新增的数据成员和方法。(2)继承是可以传递的。如果C从B派生,而B从A派生,那么C就会既继承在B中声明的成员,又继承在A中声明的成员。这样,子类的属性个数总比父类的属性个数多,可以说子类是更具体的实例。(3)Java中规定,直接父类只能有一个,也就是说Java只支持单继承。这是Java独特于其他面向对象语言的地方(譬如,C++支持多继承)。(4)派生可以扩展它的直接父类,添加新的成员,但不能移除父类中定义的成员。4.1.2java继承的实现客观世界中,特殊类对象共享一般类对象的状态及行为,称为子类继承父类的特性。语言中,子类可以继

7、承父类的数据成员(属性)和方法,还可以增加自己特有的数据成员(属性)和方法。1.创建子类继承发生在父类和子类之间,用extends关键字来实现。子类定义的格式如下:[类修饰符]class子类名extends父类名{类体}【例4-1】定义一个员工类Employee,再定义一个部门经理类Manager,根据员工的类别显示信息。运行结果如图4-3所示:图4-3例4-1运行结果2.this和super关键字两个关键字都是用来指代类,this指代本类,super指代父类,可以在引用类的成员中使用它们。this和super在内存中的引用关系,如图4-4所示

8、图4-4this和super在内存中的引用关系图前面的示例中,已多次使用了这两关键字。它们通常有以下两个作用。(1)调用构造方法类在定义重载构造方法时

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。