- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第08讲 Java抽象类、接口
抽象类、接口 抽象类、接口 抽象类、接口 抽象类、抽象方法 接口 接 口与抽象类 抽象类(类的更高程次的抽象) 在上一章,我们可以创建子子类的对象,也可以创建超类的对象,但从继承层次由下而上,类变得更通用也更抽象,甚至只具备概念上的意义,而并非需要其特定的实例对象,这样更高抽象程次的超类我们把它叫做抽象类。 public abstract class Car { ... } 继承层次 抽象类特点 抽象类不能被实例化 Car myCar; //right! myCar=new Car(); //Error! 抽象类可以包含抽象方法(abstract method只在超类中声明,而在其子类中重写实现) public abstract void accelerate(); public abstract void decelerate(); //声明 抽象类的子类也可以是抽象类 继承抽象类的非抽象类,则必须实现超类中的抽象方法 抽象类 思考A. 非抽象超类能包含抽象方法吗?为什么? 思考B. 抽象类可以包含非抽象方法吗?为什么?应该怎么设计 思考C. 抽象类必须包含抽象方法吗? 思考D. 继承抽象类的抽象类可以实现超类中的抽象方法吗? 抽象类示例(Car.java BadCar.java) public class BadCar extends Car2 { } Upon compilation you should receive the following error: BadCar.java:1: BadCar should be declared abstract; it does not define decelerate () in Car2 public class BadCar extends Car2 ^ 1 error 接 口 在一个继承体系中不可避免会出现这种情况,方法在类层次中越堆越高以致其可以为越来越多的子类可用。接口的设计避免了这个问题。它们把方法或方法系列的定义从类层次中分开。与类层次无关的类实现相同的接口是可行的。这是实现接口的真正原因所在。 接 口特点 多个无关的类可以实现同一个接口, 一个类可以实现多个无关的接口 接口可以扩展 当实现一个接口方法时,该方法它必须声明成public。 接口定义可以是default或者public interface if1{ public void aaa1(); void aaa2 ();//public int ii = 99; //public static final } public interface if2{ public void aaa1(); void aaa2 (); int ii = 99; } 接口的定义(Serviceable.java ) public interface Serviceable { public void changeOil(); public void tuneUp(); } 接口的实现(Porsche2.java ) public class Porsche2 extends Car implements Serviceable { ... public void tuneUp() { System.out.println( Tuning up a porsche... ); } public void changeOil() { System.out.println( Changing a porsche’s oil... ); } ... } 针对接口编程(Mechanic2.java ) public class Mechanic2{ public void service( Serviceable s ) { s.changeOil(); s.tuneUp(); } public static void main( String[] args ) { Porsche porsche = new Porsche(); Pinto pinto = new Pinto(); Mechanic1 mechanic = new Mechanic1(); mechanic.service( porsche ); mechanic.service( pinto ); }
您可能关注的文档
最近下载
- 重庆大学版信息科技四年级上册全册教案教学设计.doc VIP
- 大班课件《有趣的盐》.pptx VIP
- DB51T 3239-2024 危险化学品安全生产数据交换规范.pdf VIP
- 中小学音体美器材配备重点标准.doc VIP
- 2024年全国考点PET口语真题汇总(1-12月).pdf VIP
- 医疗器械不良事件培训试题及答案.docx VIP
- 马工程《马克思主义政治经济学概论》(第2版)配套题库【考研真题精选+章节题库】.pdf VIP
- 话题幼儿园语言教育活动设计.ppt
- JBT 5943-2018 工程机械 焊接件通用技术条件.pdf VIP
- 创新国有企业党建工作提升员工幸福感-来源:现代企业文化·下旬刊(第2020003期)-中国工人出版社.pdf VIP
- 软件下载与安装、电脑疑难问题解决、office软件处理 + 关注
-
实名认证服务提供商
专注于电脑软件的下载与安装,各种疑难问题的解决,office办公软件的咨询,文档格式转换,音视频下载等等,欢迎各位咨询!
文档评论(0)