Java 的介面

Java 物件導向程式設計入門

Sani Yusuf

Lead Software Engineering Content Developer

繼承的限制

  • 使用繼承時,所有成員都會被繼承
  • 你無法選擇性繼承成員

  // Car 類別   
  class Car {
    // 電池容量只適用於
    // 電動車
    public int batteryCapacity;

    void drive() {

    }  
  }


  // Toyota 類別
  class Toyota extends Car {  
    void drive(){

    }           
  }


// Main 類別 public static class Main { public static void main(String[] args) { Toyota myToyota = new Toyota(); // 所有車輛都會繼承「batteryCapacity」 // 就算不是電動車也一樣 System.out.println( myToyota.batteryCapacity); // 不適用 } }
Java 物件導向程式設計入門

建立介面

  • 介面可用來選擇性地取得屬性與方法
  • 類別以 implements 使用介面

  // ElectricCar 介面 
  interface ElectricCar {

  }





  // Tesla 實作
  // ElectricCar 介面
  class Tesla implements ElectricCar {

  }








Java 物件導向程式設計入門

在介面中加入屬性

  • 屬性命名慣例為 UPPER_SNAKE_CASE
  • 值需立即指定且不可更改
  • 屬性在底層為 public static final

  interface ElectricCar {
    // 隱含為 public static final
    // 不可更改
    int BATTERY_CAPACITY = 310;

  }




Java 物件導向程式設計入門

加入介面方法

  • 介面通常用來放方法
  • 方法預設為 abstract,不含實作
  • 介面也可有含實作的具體方法
  • 所有 abstract 方法都必須在子類別中實作
  interface ElectricCar {
    // 隱含為 public static final
    // 不可更改
    int BATTERY_CAPACITY = 310;


// 預設為抽象方法 void charge();
// 這是具體方法 void autoPark() { }
}
class Tesla implements ElectricCar { // 必須實作 public void charge() { } }
Java 物件導向程式設計入門

一起來練習吧!

Java 物件導向程式設計入門

Preparing Video For Download...