接口
接口相当于所有方法都是抽象方法,所有属性都是常量的抽象类。
接口中只能声明常量和抽象方法。
接口可以定义常量,可以引用实现类的实例。
接口不能直接实例化。
具体类实现接口必须实现全部的抽象方法。
接口可以继承接口。
类可以实现多个接口,接口和实现类是父子类型关系。
具体类实现接口必须实现全部的抽象方法,就说明:接口约定了具体类的方法,约定了类的外部行为。
接口可以实现软件组件之间的插接组装关系。
package day04;
/*
* interface差不多abstract class
* 接口中只能声明抽象方法和常量
* Runner可以跑的人
* 使用接口可以定义变量,接口不能实例化,即接口只能被实现
* 具体类实现了一个接口,必须实现全部的抽象方法。
* 具体类可以同时实现多个接口,就是多继承现象
* 多重继承:Cat既是Hunter也是Runner
* implements实现,实际是继承关系
*/
public class Demo10 {
public static void main(String[] args){
Cat tom = new Cat();
Hunter hunter = tom;
Runner runner = tom;
hunter.hunt();
hunter.run();
runner.run();
// new Runner();//编译错误,不能创建接口的实例
// runner.hunt();编译错误Runner上没有定义hunt方法
}
}
class Cat implements Hunter,Runner{//实现多个接口
public void hunt(){//实现接口中的抽象方法
System.out.println("抓老鼠去!");
}
public void run(){
System.out.println("速度是"+SPEED);//SPEED从Runner继承的
}
}
interface Hunter extends Runner {// 猎人是能跑到
void hunt();// 打猎
}
interface Runner {
/* public static final */ int SPEED = 100;
/* public abstract */ void run();
}