介面定義了一個新的參照型別。可以使用介面型別來宣告變數,在方法中宣告引數型別,作為方法的返回型別等。
interface Shape {
void draw();
}
public class Main {
// interface type as instance variable
private Shape myShape;
// interface type as parameter type for a constructor
public Main(Shape s) {
this.myShape = s;
}
// interface type as return type of a method
public Shape getShape() {
return this.myShape;
}
// interface type as parameter type for a method
public void setShape(Shape s) {
this.myShape = s;
}
public void letItSwim() {
// interface type as a local variable
Shape locaShape = null;
locaShape = this.myShape;
// interface variable can invoke methods
// declared in the interface and the Object class
locaShape.draw();
}
}
介面型別的變數是指其類實現該介面的記憶體中的物件。使用介面型別的變數或直接使用介面名稱來存取介面中宣告的任何常數欄位。
最好使用介面名存取介面的常數。使用介面型別的變數來呼叫介面中宣告的任何方法。介面型別的變數可以呼叫java.lang.Object
類的任何方法。
預設情況下,介面型別的範例或靜態變數將初始化為null
。