什么是接口
接口是一种特殊的抽象类;
- 接口用"interface"关键字定义;
- 接口和抽象类一样不可以被实例化;
- 接口中可以定义抽象方法,并且定义的时候可以省略"abstract"关键字,实现类必须重写接口中的实现方法;
- 接口中不可以定义普通实例方法;
- 从JDK1.8开始,接口中可以定义"default"默认方法,实现类可以选择重写或者不重写;
- 接口中定义常量无需"static+final"关键字;
- 实现类中实现接口使用"implements"关键字;
public interface MyInterface{
//接口中定义常量无需"static+final"关键字
String TYPE = "aaaa";
//接口中定义抽象方法省略"abstract"关键字
public void dosth1();
//接口中定义抽象方法省略public
void dosth2();
//JDK1.8开始,接口中可以定义"default"默认方法
public default void dosth3(){
//对于默认方法实现类可以选择重写或不重写
}
}
Class MyInterfaceImp implements MyInterface{
//实现类必须重写抽象方法
@Override
public void dosth1();
}
接口中的实现与继承
- 一个接口可以继承多个接口;
- 一个实现类可以实现多个接口;
//一个接口可以继承多个接口
public interface MyInterface extends Interfaceo,Interfacex,Interfacez{
public void dosth();
}
//一个类可以实现多个接口
Class MyInterfaceImp implements MyInterface,Interfaceo,InterfaceX{
//实现类必须重写实现的接口的抽象方法
}
接口和抽象类的区别
-
都不能被实例化;
不管是抽象类还是接口都不能被实例化。 -
都包含抽象方法;
抽象类中的抽象方法需要用"abstract"关键字定义;
接口中的方法默认就是抽象方法。 -
单继承多实现;
一个类只能继承一个父类,但是一个类可以实现多个接口。