Java接口作爲類型

接口定義了一個新的引用類型。可以使用接口類型來聲明變量,在方法中聲明參數類型,作爲方法的返回類型等。

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