文章目录
修饰符
interface 接口名
extends 父接口名列表
{
public
static
final
常量;
public
abstract
方法;
}
- 修饰符,可选参数,可选值为
public
,如省略,则为默认访问权限 - extends 父接口名列表,可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数
1 为什么会有接口(作用)
定义一个规则,只要类(对象)符合这个规则,就可以使用,规则在 Java中,就是 接口
接口就是,把公用的功能抽取出来,谁需要这个功能,谁来实现
implements它
举例:
不只是狗具有导盲功能,其他动物也有。如果定义为抽象类,那只能单继承,扩展性不好
定义为接口,谁需要这个功能,谁实现它就可以了
interface 导盲{
public abstract void 导盲();
}
比如 USB接口,现在 USB接口都是标准化的,可以连接手机,电脑等不同设备,如果单写 电脑USB接口功能,其他设备就没法用,扩展性不强
我们可以先开发出 USB接口标准,然后设备厂商实现该标准
interface USB { // 操作标准
public abstract void install() ;
public abstract void work() ;
}
在电脑上应用此接口:
class Computer implements USB {
public void install() {
System.out.println("安装电脑驱动程序。") ;
}
public void work() {
System.out.println("电脑与其连接设备进行工作。") ;
}
}
定义USB设备—手机:
class Phone implements USB {
public void install() {
System.out.println("安装手机驱动程序。") ;
}
public void work() {
System.out.println("手机与电脑进行工作。") ;
}
}
定义USB设备—打印机:
class Print implements USB {
public void install() {
System.out.println("安装打印机驱动程序。") ;
}
public void work() {
System.out.println("进行文件打印。") ;
}
}
2 接口的定义
接口是对抽象类的再次抽象
— 当一个抽象类中的方法,都是抽象的时候,可以将该抽象类用另一种形式表示 — 接口
由此可见,接口其实就是一种特殊的 class, 只不过是换了一种表示方式 interface
// 抽象类中的方法,都是抽象的,可以定义为接口
abstract class AbsDemo{
abstract void show1();
abstract void show2();
}
// 接口 --- 接口不过是一种特殊的 class,只不过换了一种表示方式
interface Demo{
public abstract void show1();
public abstract void show2();
}
3 接口的特性
接口中的成员(成员常量,成员方法),具有固定的修饰符
1 成员常量:public static final
public static final int NUM = 4;
如果自己不写 *public static final *中的一个或者几个,系统会默认给加上,但是阅读性不好,建议加上
2 成员方法:public abstract
public abstract void show();
抽象方法需要被覆盖,不写 public ,非 public 来覆盖会导致失败。写上,阅读性好,不易出错
由此得出结论:接口中的成员,都是公共的权限
接口示例:
interface Demo{
public static final int NUM_PERSON = 100;
public abstract void method1();
public abstract void method2();
}