將 Car 類別改為抽象類別

Java 物件導向程式設計入門

Sani Yusuf

Lead Software Engineering Content Developer

說明抽象類別

  • 「Car」這個稱呼只是佔位用
  • 你還需要知道更具體的車種

Toyota

Mercedes

Java 物件導向程式設計入門

用食物比喻抽象類別

  • 你不會在餐廳只說要「食物」
  • 你會指明想吃的種類
    • 麵包
    • 義大利麵
    • 米飯

麵包

義大利麵

米飯

Java 物件導向程式設計入門

理解抽象類別

  • 抽象類別用來承載讓子類別繼承的特徵
  • 抽象類別不能建立物件實例
  • 抽象類別通常沒有實作程式碼
Java 物件導向程式設計入門

Car 抽象類別


  // Car abstract class
  abstract class Car {    
    // abstract drive method
     abstract void drive(); // No Code Implementation 

  }








Java 物件導向程式設計入門

抽象方法

  • 抽象方法沒有實作
  • 繼承的類別必須實作抽象方法

   // Car abstract class
  abstract class Car {    
    // abstract drive method
     abstract void drive(); // No Code  
                            // implementation
  }





  // Toyota class 
  class Toyota extends Car {  
     void drive(){
      // Toyota drive() implementation
    }           
  }
  // Porsche class
  class Porsche extends Car {  
     void drive(){
      // Porsche drive() implementation
    }           
  }
Java 物件導向程式設計入門

建立具體方法

  • 具體方法是有實作程式碼的方法
  • 子類別不需再實作具體方法

  // abstract Car class
  abstract class Car {
    private int topSpeed;

    // Concrete method with implementation
    public getTopSpeed(){
         return this.topSpeed;
    }

    abstract void drive(); 
    // No Code Implementation        
  }

Java 物件導向程式設計入門

一起來練習吧!

Java 物件導向程式設計入門

Preparing Video For Download...