接口
接口的特点
- 接口用关键字interface表示:格式:interface 接口名 {}
- 类实现接口用implements表示:格式:class 类名 implements 接口名 {}
- 接口不能实例化(不能创建对象),可以按照多态的方式通关子类实例化;
- 由此可见,多态有三种方式:
具体类多态(几乎没有)、抽象类多态(常用)、接口类多态(最常用); - 接口的子类:
可以是抽象类,但是抽象子类依然不能实例化,没有意义;
可以是具体类,要重写接口中的所有抽象方法(推荐使用);
-接口成员特点:
1)成员变量:只能是常量,并且是静态的;
默认修饰符:public static final
interface Inter {
public int num = 10;//默认为静态常量
public final int num2 = 20;//默认为静态常量
public static final int num3 = 30;
}
//接口名+Impl这种格式是接口的实现类格式
class InterImpl implements Inter {
}
//接口测试类
class InterfaceDemo {
public static void main(String[] args) {
//创建对象
Inter i = new InterImpl();
System.out.println(i.num);//10
System.out.println(i.num2);//20
System.out.println(i.num3);//30
i.num =100;
//System.out.println(i.num);报错:无法为最终变量num分配值
}
}
- 2)构造方法:接口没有构造方法,因为接口只要是扩展功能的,而没有具体存在;
- 3)成员方法:只能是抽象方法;
默认修饰符:public abstract - 所有的类都默认继承自一个类:Object。类 Object 是类层次结构的根类,每个类都使用 Object 作为超类;
class InterImpl extends Object implements Inter {}
- 类与类:继承关系,只能单继承,可以多继承;
- 类与接口:实现关系,可以单实现,也可以多实现,并且还可以在继承一个类的同时实现多个接口;
- 接口与接口:继承关系,可以单继承,也可以多继承;