第4章-抽象类和接口.ppt_第1页
第4章-抽象类和接口.ppt_第2页
第4章-抽象类和接口.ppt_第3页
第4章-抽象类和接口.ppt_第4页
第4章-抽象类和接口.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

Java面向对象基础,第4章抽象类接口,知识回顾,什么是继承?如何实现继承?继承中的类型关系,目标,理解抽象类和接口的概念掌握抽象类和接口的使用掌握抽象类与接口之间的区别,宠物类属性:名字,年龄方法:叫,吃,由一个类继承层次结构图想到的?,我要开发一个网上宠物商店。恩,我应该使用面向对象的思路来进行设计,狗类汪汪叫吃骨头,猫类喵喵叫吃鱼,猫和狗的方法比较好实现(具体)但是宠物类的方法怎么实现?如果仅仅留着空方法,也会让客户产生误会,继承层次结构图分析-1,从下往上看继承层次结构图,类逐渐变得更通用也更抽象,越来越抽象,越来越具体,继承层次结构图分析-2,在Animal类中无法为eat()方法创建有意义的实现过程有时我们需要这样的基类,他提供一部分(或者压根没有提供)被子类共享的内容,而更多的内容是等待子类自己去补充实现的。这样的类,我们称之为抽象类,现实生活中的情况,全国人民代表大会通过决议,要全面建设小康社会怎么整?留着给你具体实现中国奥运代表团出征大会,国家体育局领导发言:希望各位赛出水平,赛出风格,争金夺银怎么整?留给各位运动员自己领会,抽象类和抽象方法-1,定义抽象类的目的就是为了让别人继承,并按抽象类中定义的方案,来给出具体的设计使用关键字abstract来声明抽象类,abstractclassAnimal/抽象类,抽象类和抽象方法-2,抽象类通常包含0个或多个抽象方法抽象方法表明该抽象类的子类必须提供此方法的具体实现使用关键字abstract来声明抽象方法,abstractclassAnimal/抽象类publicabstractvoideat();/抽象方法,抽象方法只有方法的声明,没有方法体抽象方法用来描述系统具有什么功能具有一个或多个抽象方法的类必须声明为抽象类,抽象类和抽象方法-3,抽象类也可以有具体的属性和方法构造方法不能声明为抽象方法,abstractclassAnimal/抽象类privateStringname;/属性publicAnimal(Stringn)/构造方法name=n;publicabstractvoideat();/抽象方法publicStringgetName()/具体方法returnname;,抽象类和抽象方法-4,当一个具体类继承一个抽象类时,必须实现抽象类中声明的所有抽象方法,否则也必须声明为抽象类,classDogextendsAnimalpublicDog(Stringn):base(n)/子类的构造方法publicvoideat()/实现基类的抽象方法System.out.println(name+啃骨头);classCatextendsAnimalpublicCat(Stringn)super(n)publicvoideat()System.out.println(name+吃鱼);,Catcat=newCat(咪咪);cat.eat();Dogdog=newDog(非非);dog.eat();,抽象类和抽象方法-5,不能通过new关键字实例化抽象类的对象,Animalanimal=newAnimal(非非);/错误,但可以声明抽象类的引用指向子类的对象,以实现多态性,Animalanimal=newDog(非非);/正确animal.eat();,小结抽象类,抽象类用于描述继承体系的上层结构抽象类定义的目的就是为了让别人去继承一个抽象类可以有具体属性一个抽象类可以有0-*抽象方法一个抽象类可以有0-*非抽象方法继承一个抽象类,但是没有全部实现抽象类的全部抽象方法,那么也必须声明为抽象类,引入接口-1,我们看一下电源插座表面看上去,我无法知道这个塑料壳子后面具体的样子(具体实现)但是我从它的样子上看出,可以把二眼插头插进去无论我到什么地方,看到这样的插座(不管壳子后面怎么实现的),我就知道,他支持二眼插头,威迅教育开发部监制,引入接口-2,面向对象设计中的接口,通过接口来调用服务的好处是,只要接口不变,服务提供者改变的话,只要还实现相同的接口,那么调用者就无需改变,调用者,服务提供者,接口,提供服务的模块,调用服务的模块,通过接口调用服务,实现此接口所必须的服务,类与接口,一个类只能有一个直接的基类但是可以实现多个接口,通信设备,手机,打电话,发短信,接口语法,使用关键字interface接口中的方法只能是公共方法接口中方法的主体替换成分号(抽象方法)interfaceIComparableintCompareTo(objectobj);,实现接口,实现接口遵循的原则:方法和返回类型完全匹配。任何参数完全匹配。使用接口作为方法名的前缀。假如使用显式接口实现,方法不应该有一个访问修饰符。,比较抽象类与接口-1,共同点代表系统的抽象层都不能被实例化都能包含抽象方法但不提供具体的实现,比较抽象类与接口-2,主要区别在抽象类中可以有非抽象方法,而接口中只能包含抽象方法向抽象类中添加一个具体的方法,不会对它的子类造成影响,而对于接口,一旦公布就不应被改变一个类只能继承一个直接的父类,这个父类可能是抽象类;但一个类可以实现多个接口,总结,在定义一个类时如果不打算创建该类的对象,而仅仅是将它作为一个基类,我们可以将它声明为抽象类。抽象类通常包含一个或多个抽象方法,抽象方法由继承抽象类的子类提供具体的实现。接口就是需要由其他类实现的行为模板。在抽象类没有可供继承的默认实现时,一般可以用接口

温馨提示

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

评论

0/150

提交评论