基本信息
文件名称:《Java 程序设计基础》 课件 第九章-抽象类和接口.pptx
文件大小:147.03 KB
总页数:19 页
更新时间:2025-03-29
总字数:约6.07千字
文档摘要

Java程序设计基础

抽象类和接口

抽象类和接口主要内容

?9.1抽象类(重点)

?9.2接口(重点)

?9.3内部类

1

教学目标

?能理解抽象类的概念及作用

?能理解接口的概念及作用

?能准确区分接口继承与类继承的不同之处

?能准确区分接口和抽象类的不同及联系

?能使用接口和抽象类实现面向基类的编程思想

?能理解内部类的概念及作用

?能正确使用成员内部类,静态内部类,局部内部类、匿名内部类等四种类型的内部类

?能使用接口和抽象类提高程序的复用度

2

抽象类简介

?除了前面介绍的类以外,还存在一种特殊的类——抽象类。如果在类的定义中存在着一

些抽象的方法,那么这种类就称为抽象类。语法上,抽象类是不能用于实例化对象的。

?抽象类往往用来表示抽象概念。

?举个例子,中国人(Chinese类)和美国人(American类)都有“吃饭”这个行为,因

此可以先定义一个Person类,然后让Chinese和American都继承这个类。但如何在

父类Person中定义“吃饭”这个方法呢?一般而言,中国人是用筷子吃饭,并且吃的是

中餐;而美国人是用刀叉吃饭,吃的是西餐,显然二者对于“吃饭”这一行为的具体实现

是不同的。因此,无法在父类Person中具体的定义“吃饭”这一方法。此时,就可以将

Person定义成一个抽象类,并将“吃饭”这个行为定义成抽象方法(只有方法声明,但

没有方法体的方法),然后再在子类Chinese和American中分别对“吃饭”进行具体的

实现。

3

抽象类的语法形式

?在面向对象分析和设计的过程中,经过封装和继承的分析之后,可以先创建一个抽象的

父类,该父类定义了其所有子类共享的一般形式(如Person类),具体细节再由子类

来完成(如Chinese类和American类)。Java中定义抽象类的语法形式如下。

abstractclass类名{}

?Java也提供了一种特殊的方法,这个方法不是一个完整的方法,只含有方法的声明,

没有方法体,这样的方法叫做抽象方法,其语法形式如下。

访问修饰符abstract返回值方法名();

4

抽象类的三个语法特征

?抽象类不能被直接实例化

?抽象类的子类必须实现抽象方法(除非这个子类也是抽象类)

?抽象类里可以有普通方法,也可以有抽象方法,但是有抽象方法的类必须是抽象类。

需要注意的是,抽象类里面也可以没有抽象方法,只是把原来的类前面加上abstract关

键字,使其变为抽象类。例如,以下定义抽象类的代码是符合语法规范的。

5

接口简介

?接口是一系列抽象方法的集合,与抽象类不同,不可以声明普通方法。

?虽然有人常说,接口是一种特殊的抽象类,但是在面向对象编程的设计思想层面,两者

还是有显著区别的。抽象类更侧重于对相似的类进行抽象,形成抽象的父类以供子类继

承使用;而接口往往在程序设计的时候,定义模块与模块之间应满足的规约或者定义一

种标准,使各模块之间能协调工作。

6

接口的定义语法

?Java接口定义的语法形式如下。

[修饰符]interface接口名[extends][接口列表]{接口体}

?interface前的修饰符是可选的,如果使用修饰符,则只能用public修饰符,表示此接

口是公有的,在任何地方都可以引用它,这一点和类是相同