接口
接口用于描述类所具有的功能,而不提供功能的实现,功能的实现需要写在实现接口的类中,并且该类必须实现接口中所有的未实现方法。
接口的声明语法格式如下:
修饰符 interface 接口名称 [extends 其他的接口名] {
// 声明变量
// 抽象方法
}
如声明一个Animal接口
// Animal.java
interface Animal {
//int x;
//编译错误,x需要初始化,因为是 static final 类型
int y = 5;
public void eat();
public void travel();
}
注意点:在Java8中
- 接口不能用于实例化对象
- 接口中方法只能是抽象方法、default 方法、静态方法
- 接口成员是 static final 类型
- 接口支持多继承
在Java9中,接口可以拥有私有方法和私有静态方法,但是只能被该接口中的 default 方法和静态方法使用。
多继承实现方式:
修饰符 interface A extends 接口1,接口2{
}
修饰符 class A implements 接口1,接口2{
}
实现上面的接口
// Cat.java
public class Cat implements Animal{
public void eat(){
System.out.println("Cat eats");
}
public void travel(){
System.out.println("Cat travels");
}
public static void main(String[] args) {
Cat cat = new Cat();
cat.eat();
cat.travel();
}
}