教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教学研究 >

抽象类与接口及多态

来源:网络收集 时间:2026-08-27
导读: JAVA课程PPT 抽象类与接口 JAVA课程PPT 1.抽象方法和抽象类 1.抽象方法和抽象类在类中没有方法体的方法,就是抽象方法。 含有抽象方法(abstract)的类,即为抽象类。 含有抽象方法(abstract)的类,即为抽象类。 如果一个子类没有实现抽象基类中所有的抽象方

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字,全部文档内容请下载后查看。喜欢就下载吧 ……

抽象类与接口及多态.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1569221.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)