抽象类与接口及多态
JAVA课程PPT
抽象类与接口
JAVA课程PPT
1.抽象方法和抽象类 1.抽象方法和抽象类在类中没有方法体的方法,就是抽象方法。 含有抽象方法(abstract)的类,即为抽象类。 含有抽象方法(abstract)的类,即为抽象类。 如果一个子类没有实现抽象基类中所有的抽象方 法,则子类也成为一个抽象类。 抽象类中可以没有抽象方法,但是有抽象方法的 类必须是抽象类。 构造方法、静态方法、私有方法、final方法不能 构造方法、静态方法、私有方法、final方法不能 被声明为抽象的方法。
JAVA课程PPT
2.接口 2.接口接口的概念是建立在封装的基础之上。在面向对象程 序设计中,封装是指对象的使用者通过预先定义的接 口关联到某一对象的服务和数据时,无需知道这些服 务是如何实现的。因此接口在面向对象程序设计中有 着重要的地位。 在Java中,抽象类和接口(Interface)都是一种接口 Java中,抽象类和接口(Interface)都是一种接口 抽象机制,符合接口的特点。习惯上我们只把Java语 抽象机制,符合接口的特点。习惯上我们只把Java语 法中的接口(Interface)作为接口的窄定义。该接口 法中的接口(Interface)作为接口的窄定义。该接口 是一种类型,它定义了能被一个类实现的方法。
JAVA课程PPT
2. 1.接口与实现接口的类 1.接口与实现接口的类声明接口[public] interface 接口 [extends 父接口] 父接口] { [public] [static] [final] 数据类型 成员变量=常量值; 成员变量=常量值; [public] [abstract] 返回值类型 成员方法[(参数列表)]; 成员方法[(参数列表)]; } 例如, public interface Plane1 //平面图形接口 //平面图形接口 { public abstract double area(); //计算面积 //计算面积 }
JAVA课程PPT
2.2. 声明实现接口的类[修饰符] class 类<泛型> [extends 父类] [implements 接口列表] 修饰符] 泛型> 父类] 接口列表] 例如, public class Rectangle2 implements PlaneGraphics2
JAVA课程PPT
2.3. 接口的作用PlaneGraphics2 平面图形接口 抽象的实例成员方法 area() 计算面积 perimeter() 计算周长 实现 Rectangle2 长方形类 实例成员变量 width 宽度 height 高度 实例成员方法 覆盖area()方法,计算长方形面积 覆盖perimeter()方法,计算长方形周长 实现 Ellipse2 椭圆类 实例成员变量 radius_a a轴半径 radius_b b轴半径 实例成员方法 覆盖area()方法,计算椭圆面积 覆盖perimeter()方法,计算椭圆周长
图1 图形接口与实现图形接口的类
JAVA课程PPT
【例1】 图形接口与实现图形接口的类。设计平面图形接口PlaneGraphics2。 设计平面图形接口PlaneGraphics2。 设计长方形类Rectangle2,实现平面图形 设计长方形类Rectangle2,实现平面图形 接口。
JAVA课程PPT
2.4. 接口的特点接口及接口中成员的访问权限都是public 接口及接口中成员的访问权限都是public 接口中的成员方
法都是公有的、抽象的实例成员 方法 接口中的所有抽象方法必须全部被实现接口的类 覆盖 接口中的成员变量都是常量 接口不能被实例化 接口是引用数据类型PlaneGraphics2 g1 = new Rectangle2(10,20);
JAVA课程PPT
3. 用接口实现多重继承一个类可以(而且只能)继承一个父类并实现多个接口 一个类可以(而且只能)继承一个父类并实现多个接口
父类 继承 子类1 继承 子类2
父类 继承
接口1 实现 子类 实现
接口2
接口1 实现 类
接口2 实现
(a) 继承并实现接口 (1) 单重继承 (2) 多重继承
(b) 实现多个接口
图2 继承机制
JAVA课程PPT
【例2】 长方体类继承长方形类并实现立体 图形接口。 设计立体图形接口SolidGraphics2。 设计立体图形接口SolidGraphics2。 设计长方体类Cuboid1,继承长方形类并实 设计长方体类Cuboid1,继承长方形类并实 现立体图形接口。 长方体类Cuboid1中必须再次覆盖area()和 长方体类Cuboid1中必须再次覆盖area()和 print()方法。 print()方法。 计算周长方法存在问题。
JAVA课程PPT
PlaneGraphics2 平面图形接口 area() 计算面积 perimeter() 计算周长 实现 Rectangle2 长方形类 覆盖area()方法,计算长方形面积 覆盖perimeter()方法,计算长方形周长 继承
SolidGraphics1 立体图形接口 volume() 计算体积
实现
Cuboid1 长方体类 覆盖area()方法,计算长方体表面积 覆盖volume()方法,计算长方体体积
图3 长方体类的多重继承
JAVA课程PPT
【例4】 球类实现多个接口。PlaneGraphics2 平面图形接口 area() 计算面积 perimeter() 计算周长 实现 Globe1 球类 覆盖area()方法,计算球的表面积 覆盖perimeter()方法,返回0 覆盖volume()方法,计算球的体积 SolidGraphics1 立体图形接口 volume() 计算体积
实现
图4 球类的多重继承
JAVA课程PPT
4. 接口的继承图5 接口的继承PlaneGraphics2 平面图形接口 area() 计算面积 perimeter() 计算周长
继承 SolidGraphics1 立体图形接口 volume() 计算体积 实现 Globe2 球类 覆盖area()方法,计算球的表面积 覆盖perimeter()方法,返回0 覆盖volume()方法 ,计算球的体积
JAVA课程PPT
5. 接口与抽象类的区别相同点: 两者都包含抽象方法。 两者都不能被实例化。 两者都是引用数据类型。 不同点: 抽象类约定多个子类之间共同使用的方法;接口约定多个 抽象类约定多个子类之间共同使用的方法;接口约定多个 互不相关类之间共同使用的方法。 互不相关类之间共同使用的方法。 抽象类与子类之间采用单重继承机制;一个类实现多个接 口则实现了多重继承的功能。 抽象类及其类中成员具有与普通类一样的访问权限;接口 的访问权限有public和默认两种,接口中成员的访问权限 的访问权限有public和默认两种,接口中成员的访问权限 均是public。 均是public。 抽象类中可
以包含非抽象方法,也可以声明构造方法;接 口中的方法全部是抽象方法,不能声明构造方法。 抽象类中可以声明成员变量,子类可以对该成员变量赋值; 接口中只能声明常量。
JAVA课程PPT
6. Java用接口实现多重继承比C++多重 Java用接口实现多重继承比C++多重 继承的优越之处图6 Java单重继承时执行父类或祖先类中的方法 Java单重继承时执行父类或祖先类中的方法Object类的equals()方法 执行 Object 类 equals() 成员方法 继承 X类 …… 寻找 实现 …… P 接口 ……
寻找
继承 Q 接口
继承 Y类 ……
调用Y类的equals()方法
调用
JAVA课程PPT
Java接口示例 Java接口示例[public] class 类名 [ extends 祖先类名 ] implements 接口名 [ , 其它接 [ extends 口名... ]{ 定义接口 口名 //类的实现代码 interface 接口名 类的实现代码 [public] ... 祖先接口名 ] { } 2. 实现接口 方法名(参数列表 参数列表); 返回类型 方法名 参数列表 ... 类型 常量字段名 = 值; 3. 接口与多重继承 ...
1.
} 下面代码通过实现Writeable接口和Eatable接口的Paper类 代码,演示了多重继承的程序设计: public class Paper implements Eatable, Writeable { public void eat() { System.out.println("撕纸吃,&q …… 此处隐藏:2141字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




