Java对象的多态性汇编_第1页
Java对象的多态性汇编_第2页
Java对象的多态性汇编_第3页
Java对象的多态性汇编_第4页
Java对象的多态性汇编_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java对象的多态性汇编Java编程精要 Java对象的多态性福建 厦门20XX年6月本章相关词汇本章相关词汇单单 词词说说 明明Override method方法重写方法重写Convert转换转换abstract抽像的抽像的本章目标本章目标n对象的多态性n抽像方法多态性概述多态性概述n创建教员基类(Teacher),n在教员基类的基础上,再创建两个子类:JAVA教员(JavaTeacher)和.NET教员(DotNetTeacher),n开发一个类代表教学管理中心,负责对各教员进行评估,评估内容包括:1、教员的自我介绍2、教员的授课public class TeacherManager pu

2、blic void judge(JavaTeacher t)roduce三三;t.teach三三;public void judge(DotNetTeacher t)roduce三三;t.teach三三;public static void main(String args) TeacherManager tmq = new TeacherManager 三三;tmq.judge(new JavaTeacher(李明李明, 25, 3);tmq.judge(new DotNetTeacher(张明张明, 27, 5);n现在,升级教员类,增加一种新类型:DBTeacher,

3、该类型的教员专门负责教授数据库,要求如下:属性:姓名、年龄、教学年限方法:授课(启动Sql Server、实施理论课授课)、自我介绍n同时,教学管理中心也负责对这类教员进行评估n如果在前述方案的基础上去解决,我们需要如下两个步骤:建立DBTeacher类修改教学管理中心类,增加方法:judge(DBTeacher t)每增加一种新的教员类型,都要修改教学管理中每增加一种新的教员类型,都要修改教学管理中心类,增加相应的心类,增加相应的judge(评估评估)方法,代码的可扩方法,代码的可扩展性及可维护性差展性及可维护性差 这种方法有什么不好的地方?这种方法有什么不好的地方?多态概述n多态是指具有表

4、现多种形态的能力 n同一个实现接口,使用不同的实例而执行不同操作彩色打印机彩色打印机 打印机打印机 黑白打印机黑白打印机打印效果:彩色打印效果:彩色打印效果:黑白打印效果:黑白打印打印 打印打印 1、子类重写父类的方法2、编写方法时,使用父类定义的方法3、运行时,JVM会根据实际创建的对象类型动态决定使用哪个方法public class TMQ public void judge(Teacher t)t.sayHi三三;t.lesson三三;public static void main(String args) TMQ tmq = new TMQ三三;tmq.judge(new JavaTe

5、acher(李明李明,25,3);tmq.judge(new DotNetTeacher(张明张明,27,5);tmq.judge(new DBTeacher(“李岚李岚,26,3);可以接收子类类型可以接收子类类型根据实际创建的对象类型根据实际创建的对象类型调用相应方法调用相应方法public class Teacher public void teach三三 System.out.println(知识点讲解知识点讲解); System.out.println(总结提问总结提问); public class TMQ public void judge(Teacher t) t.teach三三

6、; public class Test public static void main(String args) TMQ hq = new TMQ三三; hq.judge(new DBTeacher三三); public class DBTeacher extends Teacher public void teach三三 System.out.println(启动启动 SqlServer); super.teach三三; n请编码实现如下需求:乐器(Instrument)分为:钢琴(Piano)、小提琴(Violin)各种乐器的弹奏( play )方法各不相同。n编写一个测试类Instrum

7、entTest,要求:编写方法playTest,对各种乐器进行弹奏测试。要依据乐器的不同,进行相应的弹奏。在main方法中进行测试编程练习抽象方法抽象方法n在某些情况下,基类无法(或者没有必要)提供被覆盖方法的具体实现,那么就可以将此方法声明成抽象方法;n使用关键字abstract声明抽象方法,一般语法:n访问权限 abstract 返回值类型 方法名称(参数列表);n如:npublic abstract void draw三;抽象类抽象类n如果某个类中包含有抽象方法,那么该类就必须定义成抽象类;n定义抽象类同样使用关键字abstract,一般语法:n访问权限 abstract class 类

8、名 n成员列表nn如:npublic abstract class Shapes npublic abstract void draw三;n抽象类的注意事项抽象类的注意事项n抽象类不可以直接实例化,只可以用来继承n抽象类的派生子类应该提供对其所有抽象方法的具体实现(覆写所有抽象方法)n可以这么认为,抽象方法实际上就是由抽象基类强制要求其派生子类必须实现的方法原型抽象类的注意事项抽象类的注意事项n如果抽象类的派生子类没有实现其中的所有抽象方法,那么该派生子类仍然是抽象类,只能用于继承,而不能实例化n抽象类中也可以包含有非抽象的方法n构造方法和静态方法不可以修饰为abstract给定如下Java代

9、码,编译运行后,输出结果是什么?public class Teacher public void giveLesson三三System.out.println(知识点讲解知识点讲解);public class DBTeacher extends Teacher public void giveLesson三三System.out.println(启动启动 SqlServer);12public class Test public static void main(String args) Teacher t = new DBTeacher 三三;t.giveLesson三三; 控制台输出控制台

10、输出 启动启动 SqlServer 模板设计模式模板设计模式n模板设计模式是最为常见的设计模式之一n它是指搭建一个算法或方案的框架,而实现方式可以依据具体情况的不同而不同n所有遵循同一模板的类,都有相同或部分相同的结构n模版方法模式是基于继承的代码复用的基本技术,模版方法模式的结构和用法也是面向对象设计的核心模板设计模式模板设计模式冲泡模板速溶咖啡冲泡方案绿茶冲泡方案模板设计模式模板设计模式n模板设计模式需要开发抽象类和具体子类的设计师之间的协作n一个设计师负责给出一个算法的轮廓和骨架,另一些设计师则负责给出这个算法的各个逻辑步骤实例实例实况足球实况足球开发任务开发任务龙与地下城怪物设计龙与地下城怪物设计开发需求(1)英雄具有的属性包括:姓名、职业、等级、血量、攻击力和防御力,具有的方法包括:显示属性、判定是否死亡、攻击(2)怪物共有的属性包括:名称、血量、攻击力、防御力;共有的方法包括:显示属性、判定是否死亡、和攻击(3)攻击的伤害值计算公式为:攻击者攻击力-被攻击者防御力,被攻击者的血量会要扣减调伤害值开发任务开发任务龙与地下城怪物设计龙与地下城怪物设计(4)死亡判定规则为:血量小于等于0(5)设置两种怪物:独眼巨人,树怪(6)独眼巨人特有的属性有:武器(狼牙棒或钉锤);独眼巨人具有的攻击方法是:使用武器(狼牙棒或钉锤)攻击(7)树怪特有的属性:高度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论