java抽象类与接口.ppt

上传人:max****ui 文档编号:6360328 上传时间:2020-02-23 格式:PPT 页数:22 大小:308KB
返回 下载 相关 举报
java抽象类与接口.ppt_第1页
第1页 / 共22页
java抽象类与接口.ppt_第2页
第2页 / 共22页
java抽象类与接口.ppt_第3页
第3页 / 共22页
点击查看更多>>
资源描述
0 抽象类与接口 1 本节学习目标 什么是抽象类 如何定义抽象类 什么是接口 JAVA中为什么要引入接口 如何实现接口 2 一 抽象类 abstractclass 抽象类一般没有足够的信息来描述一个具体的对象 抽象类只用于继承 不能用于创建对象 一个抽象类一般包括一个或多个抽象方法 只有方法说明 没有方法体 抽象类的子类必须实现其父类定义的每一个抽象方法 若没有实现父类的所有抽象方法 则该子类也应该定义为抽象类 3 1 抽象类的实现 抽象类abstract修饰 其格式是 abstractclass类名 类成员定义 抽象类也可以包含非抽象的方法 继承抽象类的非抽象子类必须覆盖父类中定义的抽象方法 4 2 抽象方法 abstractmethod 抽象方法用abstract修饰 它没有方法体 抽象方法的格式是 abstract返回类型方法名 参数 抽象方法只能出现在抽象类中 含有抽象方法的类必须定义成抽象类 5 几点注意事项 1 构造方法不能定义为抽象方法 2 最终方法不能说明为抽象方法 3 static和private修饰符不能用于抽象方法 举例 6 求常见平面图形 如三角形 圆 矩形和正方形等 的面积 利用抽象类 编写程序实现该功能 技术分析 7 各种平面图形都可以求出其面积 但不同的形状求面积的方法不同 因此可以定义一个平面图形形状类Shape Shape类中有一个求面积的抽象方法 area 只所以定义为抽象方法是因为不同的平面图形求法不同 圆 Circle 矩形 Rectangle 和三角形 Triangle 是不同的形状 它们都是Shape的子类 而正方形 Square 是矩形 Rectangle 中的一种特殊类型 因此正方形是矩形的子类 如下图所示 抽象类的类名在类图中要用斜体表示 以区别于普通的类 8 9 作业 电在传输上都会有损耗 假如计算电费时区分冬季和夏季用电情况 冬季在用电原有读数上加上20千瓦小时作为用电损耗 而夏季没有此损耗问题 电费是每千瓦小时电0 49元 假定用电度数为125千瓦小时 利用抽象类 分别计算出冬季和夏季相应的电费 说明 10 抽象类中可以包含非抽象的方法 若类中包含了抽象方法 则该类必须要定义为抽象类 3抽象类不能用来实例化对象 一般用于继承 11 二 接口 interface Java为了免去了C 随着多继承所衍生的复杂问题的Bug 使用接口机制来解决多重继承的问题 再者 在实际软件开发中 多个不相干的类如果存在相同的属性和类似功能的方法 就可以将这些属性和方法单独组织起来 定义成一个单独的程序模块 这个模块可以使用接口来定义 另外 接口中只定义了人们关心的功能 并不考虑这些功能是如何实现的以及哪些类要实现这些功能 在实际软件开发中 假如你是一个项目经理 需要管理多个开发人员 如果你希望开发的某些类要具有某种功能 最简单的做法就是你定义一个接口 然后指示开发人员要在设计类时实现这个接口 12 1 通过接口可以实现不相干类的相同行为而不需考虑这些类之间的层次关系 2 通过接口可以实现多继承机制 3 通过接口可以了解对象的交互界面而不需了解对象所对应的类 1 接口的功能 13 public interface接口名称 接口体程序 接口是一系列没有实现的方法和常量的组合 是个功能模块 接口隐含修饰符为abstract没有public的接口 其访问将局限于该类所属的包 接口继承通过关键字extends来实现 其语法与类继承相同 而且一个接口可以继承多个接口 在类的继承中 所有的类 其超类均为Object 而接口没有所谓的超接口 2 接口的定义 14 所有定义在接口中的方法隐含为public和abstract 所有定义在接口中的常量可以是public static和final 定义在接口中的成员声明不允许使用某些声明修饰语 比如private和protected修饰语 15 4 接口的实现 class类名implements接口名1 接口名2 一个类可以使用implements实现多个接口 从而实现多继承的机制 实现接口的类必须实现接口中的所有方法 否则为抽象类 在类中实现接口中定义的方法时 不能比接口中定义的方法有更低的访问权限 因此 被实现的接口方法必须用public修饰 16 publicclassInterfaceExampleimplementsRun Think publicvoidrun 实现接口中的Runnable方法 17 举例 使用接口继承完成对生物 Biology 动物 Animal 人 Man 三个接口的定义 其中生物 Biology 接口定义一个breath 抽象方法 动物 Animal 接口定义sleep 和ate 两个抽象方法 人 Man 接口定义think 和study 两个抽象方法 定义一个人 Person 类实现上述三个接口中定义的抽象方法 18 5 接口和类之间的区别 1 类只能继承一个类 而对于接口 可以实现继承多个接口 2 对于继承性 类继承了父类的方法 子类可以选择是否覆盖父类的方法 3 接口的方法没有实现 因此 类必须实现接口中的每个方法 抽象类与接口的比较 19 抽象类和接口的有些特性是相似的 如 抽象类和接口都不能用来实例化对象 可以声明抽象类和接口的变量 但对抽象类来说 要用抽象类的非抽象子类来实例化该变量 对接口来说 要用实现了该接口的非抽象子类来实例化该变量 一个子类如果没有实现抽象类中声明的所有抽象方法 那么该子类也是一个抽象类 一个类如果没有实现接口中声明的所有方法 那么该类也是一个抽象类 抽象类和接口都可以实现程序的多态性 20 尽管抽象类和接口有些相似的特性 但它们在本质上是有很大区别的 抽象类在Java语言中体现的是一个 父与子 的关系 即抽象类与子类之间必须存在 子类是父类中的一种 关系 如抽象类 水果 与子类 苹果 之间就存在 苹果是一种水果 的关系 而接口与接口的实现者之间不必有 父与子 的关系 接口的实现者只是具有接口中定义的行为而已 抽象类中可以定义非抽象的方法 而接口中的所有方法都是抽象的 接口中的数据成员只能是常量 在抽象类中增加一个方法并赋予其默认的行为 即增加一个非抽象的方法 并不一定要修改子类 但如果接口被修改了 即增加或去掉了某个功能 则所有实现了该接口的类一定要重新修改 21 作业 教材对应章节中的 简答题 和 是非题 编写程序 模拟接口相关的例题
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!