接口
接口用於描述類所具有的功能,而不提供功能的實現,功能的實現需要寫在實現接口的類中,並且該類必須實現接口中所有的未實現方法。
接口的聲明語法格式如下:
修飾符 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();
}
}