一、接口
Java语言不允许一个类有多个直接的父类,所以不能同时继承他们所有的属性和方法,但是有了接口就可以做到多重继承的效果。
在Java语言中接口有两种意思:
1.指概念性的接口,即指系统对外提供的所有服务。类的所有能被外部使用者访问的方法构成了类的接口。
2.指用interface关键字定义的实实在在的接口,也成为接口类型。它用于明确地描述系统对外所提供的服务,他能够更加清晰的把系统实现细节与接口分离。
二、例子
public interface Photographable {//定义一个接口
public void takePhoto();
}
public class Test03 implements Photographable{
@Override
public void takePhoto() {
//通过implements关键字声明Test03类实现了Photographable接口
}
}
多个接口实现例子:
public interface Like {
public void play();
}
public interface Adept {
public void sing();
}
public class Test03 implements Like,Adept{
@Override
public void play() {
System.out.println("喜欢打篮球");
}
@Override
public void sing() {
System.out.println("擅长唱只因你太美");
}
}
接口中可以定义的方法:
public interface Kfc {
default void method1(){
System.out.println("声明一个默认方法");
}
static void method2(){
System.out.println("声明一个静态方法");
}
void method3();//声明一个抽象方法
abstract void method4();//声明一个抽象方法
}
三、接口的特点
1.接口中的成员变量默认都是public、static、final类型的,必须被显示初始化。
2.接口中的方法默认都是public、abstract类型的。
3.JDK8以前的版本中,接口中只能包含抽象方法。
4.接口没有构造方法,不能被实例化。
5.一个接口不能实现另一个接口,但它可以继承多个其他接口,使用extends关键字。
6.与子类继承抽象父类相似,当类实现某个接口时,它必须实现接口中所有的抽象方法,否则这个类必须被定义为抽象类。
7.不允许创建接口的实例,但允许定义接口类型的引用变量,该变量引用实现了这个接口的类的实例。
8.一个类只能继承一个直接父类,但可以实现多个接口。
9.与继承关系类似,接口与实现类之间存在多态性。