Java编程第06章-抽象类、接口与嵌套类.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java语言程序设计 第6章 抽象类、接口与嵌套类 6.1 抽象类 6.2 接口 6.3 抽象类与接口的比较 6.4 案例实践6:适配器模式 6.5 嵌套类 6.6 函数式接口与Lambda表达式 6.1 抽象类 抽象方法 回到上一章中的例5.17,思考: 1. 从软件设计人员的角度来看,作为正方形、三角形和圆形等具体形状类的共同父类,形状类(即Shape类)表示的是一种抽象的概念,即不应该允许下层的代码编写人员创建出Shape类的具体实例——常规的类显然不能满足此要求。 2. Shape类的draw方法描述了形状的绘制行为,但由于此时不知道具体的形状是什么,因此无法指定绘制的细节,也就是说,draw方法的方法体实际上没有任何意义。 3. 任何具体的形状类总是知道如何绘制自身,即应该强制Shape类的每个子类都要重写父类的draw方法,例5.17的设计显然不能满足此要求——Shape类的3个子类(包括以后新增的子类)完全可以不重写其draw方法而没有语法错误。 6.1 抽象类 抽象方法 解决办法:通过abstract关键字将draw方法修饰为抽象的,此时的方法称为抽象方法。 1. 抽象方法是对方法的基本说明,不带方法体,类似于C的函数原型声明。 2. 即使方法形参表所在圆括号后的一对花括号内没有任何代码,此时的方法也是带方法体的普通方法。也就是说,抽象方法连一对花括号都不带,而直接以分号结尾。 3. 可选的访问权限修饰符不能是private,因为抽象方法要被子类重写。 4. abstract不能与final或static关键字一起修饰方法。 5. 构造方法不能是抽象的。 6.1 抽象类 抽象类 若类含有抽象方法,则类必须以abstract关键字声明为抽象类。 1. 抽象类可以含零至多个普通方法,也可以含零至多个抽象方法。 2. 不论抽象类是否含抽象方法,其都不允许实例化,即不能创建抽象类的对象,因为其描述的是抽象概念。 3. 抽象类可以含构造方法,以在创建子类对象时由虚拟机调用,不能通过代码调用抽象类的构造方法。 4. 抽象类不能以final关键字修饰,因为抽象类通常需要被子类继承。 5. 若父类是抽象类,且子类不想成为抽象类,则子类必须将父类中的所有抽象方法重写为带方法体的普通方法,否则子类仍必须是抽象类。 6.1 抽象类 抽象类 【例6.1】编程实现如图所示的继承关系。 6.2 接口 声明接口 接口是对抽象类的进一步延伸,提供了更高级别的抽象。 1. 接口只能包含公共抽象方法,因此可省略方法声明中的public和abstract。 2. 与类一样,接口也可以包含字段,但它们只能是公共静态常量,因此可以省略字段声明中的public、static和final关键字 。 3. 可将接口理解成以interface关键字修饰的特殊类,其也可作为引用类型。 4. 与抽象类一样,不允许实例化接口,即不能创建接口对象。 6.2 接口 继承接口 与类的继承类似,接口之间也可以继承。 1. 接口只能继承接口,而不能继承类。 2. 与类的继承类似,接口的继承也表达了“is-a”的逻辑。 3. 与类只能继承一个父类不同,接口可以继承多个父接口,彼此以逗号隔开(各父接口的顺序可任意),表达的逻辑是子接口既是一种父接口1,也是一种父接口2,… 。 4. 若子接口继承的多个父接口定义了同名的字段,则在子接口中必须通过“父接口名.字段名”的方式显式指定访问的是哪个父接口的字段,否则会出现语法错误。 【例7.2】 6.2 接口 实现接口 Java通过接口变相实现多重继承。为了区别于类继承类、接口继承接口,Java将类“继承”接口描述为类“实现(implements)”接口。 1. 类可以实现零至多个接口,接口名彼此间以逗号隔开,且顺序无关。 2. 若类A实现了接口B,则称A为B的实现类。一个接口可以有多个实现类。 3. 类必须重写其实现的所有接口的所有抽象方法,否则要声明为抽象类。 4. UML中以图6-2的形式表示接口以及实现接口。 5. 与继承类有所不同,实现接口真正表示的是“like-a”的逻辑(见6.3.2)。 6.2 接口 实现接口 【例6.3】编程实现如图所示的“粉笔既是教学用具,又能画画”的逻辑。 6.2 接口 实现接口 面向对象思想的核心就是对现实世界的模拟和抽象,从面向对象的角度看,接口实际上是其实现类所必须拥有的一组行为的集合,其体现了“如果你是…,则必须能…”的思想。 一个接口可以有多个不同的实现类,接口充当了这些实现类

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档