0x01什么是接口
接口,在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口通常有全局常量和公共的抽象方法来组成,所以接口可以看成是一种特殊的抽象类。
0x02为什么要用接口
接口被用来描述一种抽象。因为Java不像C++一样支持多继承,所以Java可以通过实现接口来弥补这个局限。接口也被用来实现解耦。接口被用来实现抽象,而抽象类也被用来实现抽象,为什么一定要用接口呢?接口和抽象类之间又有什么区别呢?原因是抽象类内部可能包含非final的变量,但是在接口中存在的变量一定是final,public,static的。
0x03接口的实现
package moeh.www;
interface USB {
public final int number = 10000;
public void open();
public void write();
}
class Mice implements USB{
public void open()
{
System.out.println('鼠标打开了USB接口');
System.out.println('鼠标打印的数值:'+number);
}
public void write()
{
System.out.println('鼠标写入了USB接口');
}
}
class KeyBoard implements USB{
public void open()
{
System.out.println('键盘打开了USB接口');
System.out.println('键盘打印的数值:'+number);
}
public void write()
{
System.out.println('键盘写入了USB接口');
}
}
public interface MoHe {
public static void main(String[] args) {
Mice mouse = new Mice();
mouse.open();
mouse.write();
System.out.println('---------------------------------------------------');
KeyBoard keyboard = new KeyBoard();
keyboard.open();
keyboard.write();
}
}
结果展示:
0x04接口的特性
接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为publicabstract。接口中可以含有变量,但是接口中的变量会被隐式的指定为publicstaticfinal变量。接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。
0x05抽象类和接口的区别
抽象类里面能对方法进行实现,接口不行抽象类的属性中能有多种属性,但是接口中属性的默认为publicfinal抽象类不能多继承,接口可以接口中不能含有静态代码块以及静态方法(用static修饰的方法),而抽象类是可以有静态代码块和静态方法。
文章为作者独立观点,不代表观点