java抽象类与接口-课件.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
* 抽象类与接口 * 本节学习目标: 什么是抽象类? 如何定义抽象类? 什么是接口? JAVA中为什么要引入接口? 如何实现接口? * 一、抽象类(abstract class) 抽象类一般没有足够的信息来描述一个具体的对象,抽象类只用于继承,不能用于创建对象。 一个抽象类一般包括一个或多个抽象方法(只有方法说明,没有方法体)。 抽象类的子类必须实现其父类定义的每一个抽象方法,若没有实现父类的所有抽象方法,则该子类也应该定义为抽象类. * 1、抽象类的实现 抽象类abstract修饰,其格式是: abstract class 类名 { 类成员定义 } 抽象类也可以包含非抽象的方法。 继承抽象类的非抽象子类必须覆盖父类中定义的抽象方法。 * 2、抽象方法(abstract method) 抽象方法用abstract修饰,它没有方法体。 抽象方法的格式是: abstract 返回类型 方法名([参数]); 抽象方法只能出现在抽象类中。 含有抽象方法的类必须定义成抽象类。 * 几点注意事项: (1) 构造方法不能定义为抽象方法。 (2) 最终方法不能说明为抽象方法。 (3) static和private修饰符不能用于抽象方法。 举例 * 求常见平面图形(如三角形、圆、矩形和正方形等)的面积。利用抽象类,编写程序实现该功能。 技术分析: * 各种平面图形都可以求出其面积,但不同的形状求面积的方法不同,因此可以定义一个平面图形形状类Shape。Shape类中有一个求面积的抽象方法(area),只所以定义为抽象方法是因为不同的平面图形求法不同。圆(Circle)、矩形(Rectangle)和三角形(Triangle)是不同的形状,它们都是Shape的子类,而正方形(Square)是矩形(Rectangle)中的一种特殊类型,因此正方形是矩形的子类,如下图所示。抽象类的类名在类图中要用斜体表示,以区别于普通的类。 * 图6-5几何形状的类层次结构 Shape Circle Rectangle Triangle Square * 作业 : 电在传输上都会有损耗,假如计算电费时区分冬季和夏季用电情况,冬季在用电原有读数上加上20千瓦小时作为用电损耗,而夏季没有此损耗问题。电费是每千瓦小时电0.49元,假定用电度数为125千瓦小时,利用抽象类,分别计算出冬季和夏季相应的电费。 说明 * 抽象类中可以包含非抽象的方法。 若类中包含了抽象方法,则该类必须要定义为抽象类。 3 抽象类不能用来实例化对象。一般用于继承。 * 二、接口 ( interface ) Java为了免去了C++随着多继承所衍生的复杂问题的Bug,使用接口机制来解决多重继承的问题。 再者,在实际软件开发中,多个不相干的类如果存在相同的属性和类似功能的方法,就可以将这些属性和方法单独组织起来,定义成一个单独的程序模块,这个模块可以使用接口来定义。 另外,接口中只定义了人们关心的功能,并不考虑这些功能是如何实现的以及哪些类要实现这些功能,在实际软件开发中,假如你是一个项目经理,需要管理多个开发人员,如果你希望开发的某些类要具有某种功能,最简单的做法就是你定义一个接口,然后指示开发人员要在设计类时实现这个接口。 * (1) 通过接口可以实现不相干类的相同行为而不需考虑这些类之间的层次关系。 (2) 通过接口可以实现多继承机制。 (3) 通过接口可以了解对象的交互界面而不需了解对象所对应的类。 1 、接口的功能 * [public] interface 接口名称 { //接口体程序 } 接口是一系列没有实现的方法和常量的组合,是个功能模块。 接口隐含修饰符为abstract 没有public的接口,其访问将局限于该类所属的包。 接口继承通过关键字extends来实现,其语法与类继承相同,而且一个接口可以继承多个接口。 在类的继承中,所有的类,其超类均为Object,而接口没有所谓的超接口。 2、接口的定义 * public interface InterfaceName { final String name="Name"; final String sex="male"; … void aInterfaceExample(parameterList); } 接口声明 接口体 常量定义 方法声明 ■ 所有定义在接口中的方法隐含为public和abstract。 ■ 所有定义在接口中的常量可以是public、static和final。定义在接口中的成员声明不允许使用某些声明修饰语,比如private

文档评论(0)

秦圈圈 + 关注
实名认证
内容提供者

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

认证主体覃**

1亿VIP精品文档免费下

相关文档

相关课程推荐