接口是一个比抽象类更加抽象的东西,我们的java只能单继承,但是有些场景又必须用到多继承这种功能,所以java推出了接口
打个比方:我们的usb插口,也叫usb接口,全国所有的usb接口都是通用的,都可以插上,这是为什么呢?
这就是因为厂商定义了usb接口的大小,尺寸,然后由生产商来根据这些参数制作usb接口,我们写的接口也是如此,我们定义好方法,由别人来实现这些方法(也是重写)
实现接口的关键字是 implements ,实现多个接口 implements 接口1,接口2
演示:
public interface portTestOne {
// 接口中的方法默认修饰符都是 public static abstract
void eat();
void drink();
void sleep();
}
public interface portTestTwo {
// public portTestTwo(){
// 接口没有构造器
// }
int AGE = 999;
void play();
}
我们实现接口的类的类名通常用接口名+Impl
public class portTestOneImpl implements portTestOne,portTestTwo{
// 必须实现接口中所有的方法
@Override
public void eat() {
System.out.println("吃饭");
}
@Override
public void drink() {
System.out.println("喝水");
}
@Override
public void sleep() {
System.out.println("坐着睡");
}
@Override
public void play() {
System.out.println("玩游戏");
}
}
同样的,接口也可以用多态的写法
案例:
public class Main {
public static void main(String[] args) {
portTestOneImpl oneImpl = new portTestOneImpl();
oneImpl.eat();
oneImpl.drink();
oneImpl.sleep();
oneImpl.play();
// oneImpl.AGE = 1; 接口中定义的属性都是静态常量
System.out.println(oneImpl.AGE);
portTestOne one = new portTestOneImpl();
one.drink();
}
}