第08讲---Java抽象类、接口.ppt

第08讲---Java抽象类、接口.ppt

ID:59604918

大小:53.50 KB

页数:18页

时间:2020-11-15

第08讲---Java抽象类、接口.ppt_第1页
第08讲---Java抽象类、接口.ppt_第2页
第08讲---Java抽象类、接口.ppt_第3页
第08讲---Java抽象类、接口.ppt_第4页
第08讲---Java抽象类、接口.ppt_第5页
资源描述:

《第08讲---Java抽象类、接口.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、抽象类、接口抽象类、接口抽象类、抽象方法接口接口与抽象类7/29/20212抽象类、接口抽象类(类的更高程次的抽象)在上一章,我们可以创建子子类的对象,也可以创建超类的对象,但从继承层次由下而上,类变得更通用也更抽象,甚至只具备概念上的意义,而并非需要其特定的实例对象,这样更高抽象程次的超类我们把它叫做抽象类。publicabstractclassCar{...}7/29/20213抽象类、接口继承层次7/29/20214抽象类、接口抽象类特点抽象类不能被实例化CarmyCar;//right!myCar=newCar();//Error!抽象类可以包含抽象

2、方法(abstractmethod只在超类中声明,而在其子类中重写实现)publicabstractvoidaccelerate();publicabstractvoiddecelerate();//声明抽象类的子类也可以是抽象类继承抽象类的非抽象类,则必须实现超类中的抽象方法7/29/20215抽象类、接口抽象类思考A.非抽象超类能包含抽象方法吗?为什么?思考B.抽象类可以包含非抽象方法吗?为什么?应该怎么设计思考C.抽象类必须包含抽象方法吗?思考D.继承抽象类的抽象类可以实现超类中的抽象方法吗?7/29/20216抽象类、接口抽象类示例(Car.java

3、BadCar.java)publicclassBadCarextendsCar2{}Uponcompilationyoushouldreceivethefollowingerror:BadCar.java:1:BadCarshouldbedeclaredabstract;itdoesnotdefinedecelerate()inCar2publicclassBadCarextendsCar2^1error7/29/20217抽象类、接口接口在一个继承体系中不可避免会出现这种情况,方法在类层次中越堆越高以致其可以为越来越多的子类可用。接口的设计避免了这个问题。

4、它们把方法或方法系列的定义从类层次中分开。与类层次无关的类实现相同的接口是可行的。这是实现接口的真正原因所在。7/29/20218抽象类、接口接口特点多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口接口可以扩展当实现一个接口方法时,该方法它必须声明成public。接口定义可以是default或者publicinterfaceif1{publicvoidaaa1();voidaaa2();//publicintii=99;//publicstaticfinal}publicinterfaceif2{publicvoidaaa1();voidaaa2

5、();intii=99;}7/29/20219抽象类、接口接口的定义(Serviceable.java)publicinterfaceServiceable{publicvoidchangeOil();publicvoidtuneUp();}7/29/202110抽象类、接口接口的实现(Porsche2.java)publicclassPorsche2extendsCarimplementsServiceable{...publicvoidtuneUp(){System.out.println("Tuningupaporsche...");}publicvo

6、idchangeOil(){System.out.println("Changingaporsche’soil...");}...}7/29/202111抽象类、接口针对接口编程(Mechanic2.java)publicclassMechanic2{publicvoidservice(Serviceables){s.changeOil();s.tuneUp();}publicstaticvoidmain(String[]args){Porscheporsche=newPorsche();Pintopinto=newPinto();Mechanic1mech

7、anic=newMechanic1();mechanic.service(porsche);mechanic.service(pinto);}}7/29/202112抽象类、接口扩展接口在扩展接口中添加新的抽象方法publicinterfaceServiceable1extendsServiceable{publicvoidtest();}7/29/202113抽象类、接口实现接口与继承超类Car+accelerate()+decelerate()<>Serviceable+tuneUp()+changeOil()Porsche2+ac

8、celerate()+decelerate()+tu

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

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

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