
第6章接口与多态 王绍卿
1 第6章 接口与多态 王绍卿

导读 主要内容 接口 ·接口回调 ● 面向接口编程 难点 ·面向接口编程 2025/4/2
2025/4/2 2 导读

现实世界中的接口 每种USB设备的内部结构都不相同, 可以把鼠标、U盘、摄像头都插在 USB接口上,而不用担心哪个USB 接口是专门插哪个USB设备的
现实世界中的接口

§6.1接口 接口(nterface)是Java所提供的另一种重要功 能,它的结构与抽象类非常相似。接口本身也 具有数据成员与抽象方法。 使用接口是为了解决Java语言中不支持多重 继承的问题。 接口与抽象类的区别: ·接口的数据成员必须初始化; ·接口中的方法必须全部都声明为abstract的, 也就是说,接口不能像抽象类一样拥有一 般的方法,而必须全部是抽象方法。 2025/4/2
2025/4/2 4 §6.1 接口 接口(Interface)是Java所提供的另一种重要功 能,它的结构与抽象类非常相似。接口本身也 具有数据成员与抽象方法。 使用接口是为了解决Java语言中不支持多重 继承的问题。 接口与抽象类的区别: • 接口的数据成员必须初始化; • 接口中的方法必须全部都声明为abstract的, 也就是说,接口不能像抽象类一样拥有一 般的方法,而必须全部是抽象方法

§6.1.1接口的声明与使用 [public]interface接口名称[extends父接口名列表] [public][static][final]数据类型成员变量名=常量; [public][abstract]返回值的数据类型方法名(参数表): } interface USB public void work;/USB设备工作方法 public void stop(;USB设备停止工作方法
5 §6.1.1

§6.1.1接口的声明与使用 接口的使用 class类名称implements接口名 表 class Mouse implements USB{ public void stop(){ System.out.println("我就不move、"+"我就不点"); public void work() System.out.println("我move、"+"我点");
6 §6.1.1 接口的使用 class 类名称 implements 接口名 表 { . } class Mouse implements USB { public void stop() { System.out.println("我就不move、 " + "我就不点"); } public void work() { System.out.println("我move、" + "我点"); } }

§6.1.1接口的声明与使用 接口的使用 class类名称implements接口名 表 class Camera implements USB public void stop(){ System.out.println("我不能看到你了n"); } public void work(){ System.out.println("我能看到你");
7 §6.1.1 接口的使用 class 类名称 implements 接口名 表 { . } class Camera implements USB { public void stop() { System.out.println("我不能看到你了\n"); } public void work() { System.out.println("我能看到你"); } }

§6.1.1接口的声明与使用 接口的使用 class类名称implements接口名 表 { 类通过使用关键字implements)声明自己实现一个或多个接口 如果实现多个接口,则用逗号隔开接口名. class A implements Printable,Addable class Dog extends Animal implements Eatable,Sleepable 如果一个类实现了某个接口,那么这个类必须重写该接口 的所有方法
8 §6.1.1 接口的使用 类通过使用关键字implements声明自己实现一个或多个接口 如果实现多个接口,则用逗号隔开接口名. class A implements Printable,Addable class Dog extends Animal implements Eatable,Sleepable class 类名称 implements 接口名 表 { . }

§6.1.1接口的声明与使用 Java提供的接口都在相应的包中,通过importi语句不仅可以 引人包中的类,也可以引入包中的接口,例如, import java.io.*; 2025/4/2
2025/4/2 9 §6.1.1 Java import import java.io.*;

接口的实现与引用 ■一个类实现一个接口应注意的问题: ●如果实现某接口的类不是abstract的抽象类,则在 类的定义部分必须实现指定接口的所有抽象方法。 ●一个类在实现某接口的抽象方法时,必须使用完全 相同的方法头。 ●接口中抽象方法被指定为public,.所以类在实现方 法时,必须显示地使用public修饰符。 ■接口可以作为一种引用类型来使用,可以声明 接口类型的变量或数组,并用它来访问实现该 接口的类的对象
接口的实现与引用 ◼一个类实现一个接口应注意的问题: ⚫如果实现某接口的类不是abstract的抽象类,则在 类的定义部分必须实现指定接口的所有抽象方法。 ⚫一个类在实现某接口的抽象方法时,必须使用完全 相同的方法头。 ⚫接口中抽象方法被指定为public,所以类在实现方 法时,必须显示地使用public修饰符。 ◼接口可以作为一种引用类型来使用,可以声明 接口类型的变量或数组,并用它来访问实现该 接口的类的对象