接口和抽象类挺像,也是不能实例化对象,里面默认的方法都是抽象的,通过类的实现(implements)完成接口的对接 ,注意点是接口中不可以有构造器,接口与接口直接可以多继承,弥补了类的单继承性,JDK8以前的接口只能定义全局常量和抽象方法,JDK8中接口还可以定义静态方法和默认方法,不过此时的默认方法要写上default,如public default void metho(){}
下面是学习笔记:
package oop.interface_test;
public class InterfaceTest {
public static void main(String[] args) {
System.out.println(Flyable.MAX_SPEED);
// Flyable.MIN_SPEED=1; The final field Flyable.MIN_SPEED cannot be assigned
Plane plane=new Plane();
plane.fly();
}
}
interface Flyable{
//全局常量
public static final int MAX_SPEED=7900;//第一宇宙速度
int MIN_SPEED=1;//省略了public static final
//抽象方法
public abstract void fly();
//省略了public abstract
void stop();//也可以省略
// public Flyable() {
//
// } Interfaces cannot have constructors
}
interface Attackable{
void attack();
}
class Plane implements Flyable{
@Override
public void fly() {
System.out.println("通过引擎飞");
}
@Override
public void stop() {
System.out.println("驾驶员减速停止");
}
}
class Bullet extends Object implements Flyable,Attackable{
@Override
public void attack() {
}
@Override
public void fly() {
}
@Override
public void stop() {
// TODO Auto-generated method stub
}
}
//****************
interface AA{
void method1();
}
interface BB{
void method2();
}
interface CC extends AA,BB{
}



