一、接口的定义
接口(interface):是约定的一种规范。一个接口就是一个文件。接口只关心有没有这个方法 ,不关心这个方法如何实现,接口里面没有构造方法。
类继承,接口实现
类和类之间是继承的关系
类和接口之间是实现的关系
接口和接口之间是继承的关系
接口一定以大写的I开头+类名
public interface IUsb {
}
接口可以继承其它接口
public interface Iusb extends IPlastic,IMetel{
}
二、接口里面可以声明:
1、属性:PSF(public static final) 显示的声明必须是PSF,如果不显示的声明,默认就是PSF。
```java
int hight=3; //接口声明的属性是公共的、静态的常量 相当于public static final int hight=3
2、普通方法,都是PA(public abstract) 公开抽象方法, 没有方法体。
void test(); //方法是抽象的,抽象方法没有方法体 相当于public abstract void test();
3、静态方法,static方法,可以有方法体,这个方法放在方法区的元数据区。static定义的方法放在元数据区。
static void foo(){ //静态的方法有方法体
System.out.println("nihao");
}
4、默认方法,有方法体,代表显示的去除了abstract的修饰,default方法可以被重写。
default void output(){
System.out.println("nihao");
} //默认方法有方法体 可以被重写
三、类实现接口
大写的接口名+Imp
limplements(实现)
public class USBImpl implements IUsb{
}
一个类可以不止一个实现
public class USBImpl implements IUsb,IMetel{
}
接口符合里氏替换原则:所有父类能干的事子类都能替换它
Iusb usb1=new USBImpl();
四、普通类、抽象类、接口的区别
普通类 抽象类 接口
实现 √ √ ×
单继承 √ √ ×
多继承 × × √
构造方法 √ √ ×
创建对象 √ × ×
属性 √ √ PSF
普通方法 √ √ default
抽象方法 × √ √