华大实训4-OOP多态详解.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多态案例 创建教员基类, 在教员基类的基础上,再创建两个子类:JAVA教员和.NET教员, 开发一个类代表教学管理中心,负责对各教员进行评估,评估内容包括: 1、教员的自我介绍 2、教员的授课 多态案例 第一种解决方案 多态案例回顾 现在,升级教员类,增加一种新类型:DBTeacher,该类型的教员专门负责教授数据库,要求如下: 属性:姓名、年龄、教学年限 方法:授课(启动Sql Server、实施理论课授课)、自我介绍 同时,教学管理中心也负责对这类教员进行评估 多态案例回顾 如果在第一种解决方案的基础上去解决,我们需要如下两个步骤: 建立DBTeacher类 修改教学管理中心类,增加方法:judge(DBTeacher t) 多态案例回顾 第二种解决方案——使用多态 多态案例回顾 1、子类重写父类的方法 2、编写方法时,使用父类定义的方法 3、运行时,根据实际创建的对象类型动态决定使用哪个方法 小结 2 请编码实现如下需求: 乐器(Instrument)分为:钢琴(Piano)、小提琴(Violin) 各种乐器的弹奏( play )方法各不相同。 编写一个测试类InstrumentTest,要求: 编写方法testPlay,对各种乐器进行弹奏测试。要依据乐器的不同,进行相应的弹奏。 在main方法中进行测试 总结 2-2 给定如下Java代码,编译运行后,输出结果是什么? 作业 在java中开发一个飞行体系,该体系可以对任何飞行器进行控制起飞和降落! 基类:飞行类Plane ,包含起飞和降落的方法 子类:直升飞机Copter ,重写父类两个方法 子类:喷气式飞机Jet ,重写父类两个方法 测试类:用多态实现调用 JAVA核心技术 OOP4 多态 多态(1) 继承是指从一个基类(父类)派生出派生类(子类)的过程; 继承使用关键字extends; 对于类成员,可以使用public、protected、缺省和private这4种访问权限修饰符; 对于类,可以使用public和缺省这2个访问权限; 创建子类实例时,必须先执行父类的构造方法,然后再执行子类的构造方法; super关键字有两种主要用途,都与父类有关。 本章相关词汇 单 词 说 明 Override method 方法重写 Convert 转换 abstract 抽像的 本章目标 面向对象-多态 抽像方法 方法覆盖 引用转型 了解多态,在Java中实现多态 父/子类中的同名成员 上次课在讲述super关键字时,提到了父类和子类中存在同名成员的情况; 如果是同名属性(即成员变量同名),那么可以通过this和super显式地区分开来; 如果是同名方法(即成员方法同名),情况将会相对复杂。 父/子类中成员方法仅仅同名 class BaseClass //定义基类 { public void fun() { …… //具体实现代码略 } } class DerivedClass extends BaseClass //派生类继承于基类 { public void fun(int x) //跟父类中有相同名称的方法 { …… //具体实现代码略 } } /*如果仅仅只是名称相同,但参数列表不同的话,则构成方法重载*/ 父/子类中成员方法同原型 class SuperClass //定义父类 { public void fun() { …… //具体实现代码略 } } class SubClass extends SuperClass //子类继承于父类 { public void fun() //与父类中的方法完全同原型 { …… //具体实现代码略 } } /*如果不但名称相同,而且连方法原型也完全相同的话,则构成方法覆盖*/ 方法覆盖 在类的继承体系结构中,如果子类中出现了与父类中有同原型的方法,那么认为子类中的方法覆盖了父类中的方法(也称为方法重写); 通过子类的实例调用被覆盖的方法时,将总是调用子类中的方法,而父类中的方法将被隐藏。 方法覆盖示例 class ParentClass { //定义父类 public void fun() { System.out.println(这是父类中的方法。); } } class ChildClass extends ParentClass {//子类继承于父类 public void fun() { //子类覆盖父类中的方法 System.out.println(这是子类中的方法。); } } class OverriddenTes

文档评论(0)

我是兰花草 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档