CH6-多态与面向接口编程.ppt

CH6-多态与面向接口编程.ppt

ID:55827675

大小:472.50 KB

页数:25页

时间:2020-06-09

CH6-多态与面向接口编程.ppt_第1页
CH6-多态与面向接口编程.ppt_第2页
CH6-多态与面向接口编程.ppt_第3页
CH6-多态与面向接口编程.ppt_第4页
CH6-多态与面向接口编程.ppt_第5页
资源描述:

《CH6-多态与面向接口编程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、多态与面向接口编程多态对象数组与多态接口与多态面向接口编程为什么需要多态在教师类的基础上,开发一个类代表总部,负责对各教员进行评估,评估内容包括:1、教师的自我介绍2、教师的授课为什么需要多态publicclassHQ1{publicvoidjudge(JavaTeacher2t){t.introduction();t.giveLesson();}publicvoidjudge(DotNetTeacher2t){t.introduction();t.giveLesson();}publicstaticvoidmain(String[]args){HQ1hq=newHQ1(

2、);hq.judge(newAccpJavaTeacher2(“李明”,“北京大学“));hq.judge(newAccpDotNetTeacher2(“张明”,“天津大学“));}}第一种解决方案大家好!我是北京大学的李明.启动Eclipse知识点讲解总结提问大家好!我是天津大学的张明.启动VisualStudio2005知识点讲解总结提问控制台输出为什么需要多态现在,升级教师类,增加一种新类型:DBTeacher,该类型的教员专门负责教授数据库,要求如下:属性:姓名、所在学校方法:授课(启动SqlServer、实施理论课授课)、自我介绍同时,总部也负责对这类教师进行评

3、估为什么需要多态如果在第一种解决方案的基础上去解决,我们需要如下两个步骤:建立DBTeacher类修改总部类,增加方法:judge(AccpDBTeachert)每增加一种新的教员类型,都要修改总部类,增加相应的judge(评估)方法,代码的可扩展性及可维护性极差能找到这个解决方案的弊端吗?为什么需要多态5-5第二种解决方案——使用多态publicclassHQ3{publicvoidjudge(AccpTeachert){t.introduction();t.giveLesson();}publicstaticvoidmain(String[]args){HQ3hq=n

4、ewHQ3();hq.judge(newAccpJavaTeacher2(“李明”,“北京大学“));hq.judge(newAccpDotNetTeacher2(“张明”,“天津大学"));hq.judge(newAccpDBTeacher(“李岚”,“北京大学“));}}可以接收子类类型根据实际创建的对象类型调用相应方法大家好!我是北京大学的李明.启动Eclipse知识点讲解总结提问大家好!我是天津大学的张明.启动VisualStudio2005知识点讲解总结提问大家好!我是北京大学的李岚.启动SqlServer知识点讲解总结提问控制台输出使用多态之后,当需要增加新的

5、子类类型时,无需更改总部类,程序的可扩展性及可维护性增强什么是多态简单来说,多态是具有表现多种形态的能力的特征同一个实现接口,使用不同的实例而执行不同操作彩色打印机打印机黑白打印机打印效果:彩色打印效果:黑白打印打印如何实现多态1、子类重写父类的方法2、编写方法时,使用父类定义的方法3、运行时,根据实际创建的对象类型动态决定使用哪个方法小结请编码实现如下需求:乐器(Instrument)分为:钢琴(Piano)、小提琴(Violin)各种乐器的弹奏(play)方法各不相同。编写一个测试类InstrumentTest,要求:编写方法testPlay,对各种乐器进行弹奏测试。

6、要依据乐器的不同,进行相应的弹奏。在main方法中进行测试对象数组与多态Demo接口与多态5-1为ACCP各中心开发这样一个小系统,包含类型:教员、中心、打印机,具体要求如下:教员、以及中心都具有方法:输出详细信息中心具有属性:打印机,能够通过中心的打印机打印教员或中心的详细信息系统要具备良好的可扩展性与可维护性打印教员中心教员 详细信息中心 详细信息detail方法(输出详细信息)为什么需要Java接口5-2以下这个解决方案中存在着什么问题?publicclassAccpTeacher1{//输出教员的详细信息publicstringdetail(){return"本人

7、是ACCP教员";}}publicclassAccpSchool1{privatePrinterprinter=newPrinter();//输出中心的详细信息publicstringdetail(){return"这里是ACCP中心";}//使用打印机打印教员信息publicvoidprint(AccpTeacher1t){printer.print(t.detail());}//使用打印机打印中心信息publicvoidprint(AccpSchool1s){printer.print(s.detail());}}publ

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

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

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