Java 接口
接口的设定给了JAVA一个实现多继承的方法。接口内部有着一个或多个方法的声明,与内部全是抽象方法的类相似(但是也有不同,比如接口中的成员变量只能是 public static final 类型的,接口中不能含有静态代码块以及静态方法)。但是与类不同的是,一个类只能继承一个类,但是可以继承多个接口。
接口与类的区别:
- 接口不能实例化 。
- 接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract;接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量 。
- 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现 。
- 接口只允许有static 和 final 变量。
- 接口支持多继承。
- 接口不是被类继承了,是被类实现了。
接口的声明
[可见度] interface 接口名称 [extends 其他的接口名] {
// 变量
// 抽象方法
}
例子:
interface A {
public void f1();
public void f2();
}
接口的实现
类通过implements来实现接口
一个例子:
public class B implements A{
public void f1(){
System.out.println("interface.a.f1");
}
public void f2(){
System.out.println("interface.a.f2");
}
public static void main(String args[]){
B b = new B();
b.f1();
b.f2();
}
}
结果:
interface.a.f1
interface.a.f2
接口的继承
一个接口能继承另一个接口,接口的继承使用extends关键字。与类有所不同的是,接口支持多继承。
两个例子:
`
public interface A extends B//单继承
public interface A extends B,C//多继承
`
标记接口
没有任何方法的接口被称为标记接口,标记接口常用作父接口。