欢迎来到天天文库
浏览记录
ID:58988468
大小:566.00 KB
页数:34页
时间:2020-09-27
《面向对象编程基础 (二)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象编程基础(二)软件学院代飞2014.春生活中的接口声卡显卡网卡每种卡的内部结构都不相同,可以把声卡、网卡、显卡都插在PCI插槽上,而不用担心哪个插槽是专门插哪个卡的主板Java接口publicinterfacePCI{ publicvoidstart();publicvoidstop();}classSoundCardimplementsPCI{publicvoidstart() { System.out.println("Dudu..."); } publicvoidstop() { System.out.println("Soundstop!")
2、; }}Java接口中定义的方法在不同的地方被实现,可以具有完全不同的行为这是Java接口,相当于主板上的PCI插槽的规范classNetworkCardimplementsPCI{publicvoidstart() { System.out.println("Send..."); } publicvoidstop() { System.out.println("Networkstop!"); }}声卡、网卡都实现了PCI插槽的规范,但行为完全不同基于接口的多态publicclassAssembler{ publicstaticvoidmain(Stri
3、ng[]args){ PCInc=newNetworkCard(); PCIsc=newSoundCard();nc.start();sc.start();}}Dudu...Send...控制台输出案例软件学院需开发这样一个小系统,包含:软件学院、教师、系、打印机,具体要求如下:1、教师和系都具有方法:输出详细信息2、软件学院具有属性:打印机,能够打印教师、系、软件学院的详细信息3、系统要具备良好的可扩展性与可维护性打印教师系教师详细信息系详细信息detail方法(输出详细信息)软件学院publicclassSoftwareTeacher{//输出教师的详细信息pub
4、licStringdetail(){return“本人是软件工程系教师";}}publicclassSoftwareSchool{privatePrinterprinter=newPrinter();//输出中心的详细信息publicStringdetail(){return“这是云南大学软件学院";}//使用打印机打印教师信息publicvoidprint(SoftwareTeachert){printer.print(t.detail());}//使用打印机打印系信息publicvoidprint(SoftwareDepartments){printer.print(s.de
5、tail());}}publicclassPrinter{publicvoidprint(Stringcontent){System.out.println("开始打印:");System.out.println(content);}}每增加一种新类型,都需要增加相应的print(类型名称var)方法——程序的可扩展性及可维护性极差——这不符合系统的要求publicclassSoftwareDepartment{publicStringdetail(){return“这是软件工程系";}}可以通过多态性解决这个问题吗?如果教师和系都实现同一接口,接口类型的变量便可以指向教师对象,
6、或者系对象了教师系detail方法(负责输出详细信息)教师详细信息系详细信息回顾多态的含义:父类型的变量(reference)可以指向父对象,还可以指向子对象;教师、系都存在一个共同的方法特征:detail,它们对detail方法有各自不同的实现——这完全符合Java接口的定义定义一个Java接口,在其中定义detail方法,但没有具体实现实现这个Java接口,不同的类对detail方法有不同的具体实现TeacherSoftwareTeacherNetworkTeacher定义一个Java接口,在其中定义detail方法,但没有具体实现实现这个Java接口,不同的类对detail
7、方法有不同的具体实现DepartmentSoftwareDepartmentNetworkDepartmentpublicinterfaceTeacher{publicStringdetail();}publicclassSoftwareSchool{privatePrinterprinter=newPrinter();//输出学院的详细信息publicStringdetail(){return“这里是软件学院";}//使用学院打印机打印教师publicvoidprint(Tea
此文档下载收益归作者所有