接口是高度抽象的抽象类,接口当中不能含有普通方法,之前声明类的关键字都是class,以后声明接口的关键字都是interface。
example:
public interface Usb(){
}
声明接口时使用关键字interface来修饰。
接口中不能有普通方法(默认接口中所有的方法都会有public abstract来修饰)
接口不能有变量(属性)
接口不能被实例化,存在的意义就是为了被实现(接口作为一种高度抽象的抽象类,就是为了被继承)
通过implements来实现一个接口
example:
public void Mouse implements Usb{
}
一个类可以实现多个接口(电脑可以实现Usb,Ps2,Sata,Power,VideoInput,RadioInput接口等等),接口与接口之间使用逗号分隔。
example:
public void Pc implements Usb,Ps2,Sata,Power,VideoInput,RadioInput{
}
类实现了一个接口必须实现接口中定义的所哟方法,除非该类是抽象类
实现接口的类成为实现类
接口之间可以相互继承(当类实现了接口之间相互继承的接口时,就要实现接口中所有的抽象方法,包括继承接口中的所有抽象方法)
接口当中式没有构造方法的(接口就是为了被继承,因此不提供构造方法)
接口和类之间只有一种关系:类实现了接口
接口的存在意义:降低代码的耦合程度
接口指向实现类对象
当接口指向实现类对象的时候,只能调用接口中定义的方法,实现类中自定义的方法不能调用。
当方法参数为接口时,该方法可以传入接口的所有实现类的对象
方法返回值为接口,该方法可以返回任意一个接口的实现类对象