接口的简要介绍:
一.概念:比抽象类还抽象的抽象类,可以更加规范的对子类进行约束。
(如果你是…则必须能…)
从接口的实现者角度看,接口定义了可以向外部提供的服务。
从接口的调用者角度看,接口定义了实现者能提供那些服务。
二.范式:
[访问修饰符] interface 接口名 [extends 父接口1,父接口2…] {
常量定义;
方法定义;
}
三.唯一作用:
定义标准规则(全面地专业地规范和具体实现的分离)。
四.关键字:
①interface接口。
②一个类去跟一个接口建立关系,需要使用的关键字implements。
五.默认:
①所有方法默认都是:public abstract。
②接口中的属性默认被public static final 修饰。
六.特点:
①接口不可以被实例化,接口没有构造器
②实现类必须实现接口的所有方法
③实现类可以实现多个接口
七.定义接口的详细说明:
- 访问修饰符:只能是public或默认。
- 接口名:和类名采用相同命名机制。
- extends:接口可以多继承。
- 常量:接口中的属性只能是常量,总是:public static final 修饰。
- 方法:接口中的方法只能是:public abstract。
八.要点:
-
子类通过implements来实现接口中的规范。
-
接口不能创建实例,但是可用于声明引用变量类型。
-
一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。
-
JDK1.7之前,接口中只能包含静态常量、抽象方法,不能有普通属性、构造方法、普通方法。
-
JDK1.8后,接口中包含普通的静态方法。
九.接口的多继承:
( 接口完全支持多继承。和类的继承类似,子接口扩展某个父接口,将会获得父接口中所定义的一切。)
interface A {
void testa();
}
interface B {
void testb();
}
/**接口可以多继承:接口C继承接口A和B*/
interface C extends A, B {
void testc();
}
public class Test implements C {
public void testc() {
}
public void testa() {
}
public void testb() {
}
}