用繼承集中管理程式碼

Java 物件導向程式設計入門

Sani Yusuf

Lead Software Engineering Content Developer

操作多個類別

  // Toyota class
  class Toyota {
      public String model;
      public String color;
      public String licensePlate;  
  }
  // Honda class
  class Honda {
      public String model;
      public String color;
      public String licensePlate;       
  }
  // Mercedes class
  class Mercedes {
      public String model;
      public String color;
      public String licensePlate;        
  }
  • 使用類別時,重複很常見
Java 物件導向程式設計入門

繼承的威力

  • 繼承可解決重複程式碼問題
  • 共享程式碼可集中在同一處
  • 之後類別可用 extends 關鍵字繼承
  // Car class
  class Car {
     // All public properties 
     // are inherited
     public String model;
     public String color;
     public String licensePlate;  
 }

  // Toyota inheriting from Car class
  class Toyota extends Car {

  }
  // Honda inheriting from Car class
  class Honda extends Car {

  }
  // Mercedes inheriting from Car class
  class Mercedes extends Car {

  }
Java 物件導向程式設計入門

認識基底類別

  • 基底類別是放共用程式碼的類別
  • Car 類別就是基底類別的例子

  class Car {
     public String model;
     public String color;
     public String licensePlate;  
 }



Java 物件導向程式設計入門

用子類別來繼承

  • 子類別是繼承基底類別的類別
  • Toyota 類別是子類別的例子
  • 子類別會繼承基底類別的所有 public 屬性與方法
  • super() 會呼叫基底類別的建構式
  // Car Base Class
  class Car {
     public String model;
     public String color;
     public String licensePlate;  
 }

 // Toyota subclass
  class Toyota extends Car {


// Toyota constructor public Toyota(){ // super() calls // baseclass constructor (Car) super(); } }
Java 物件導向程式設計入門

建立繼承的實例

  • 基底類別的屬性可由物件實例使用

  // Car class  
  class Car {
    public String color;   

    // Car constructor
    public Car(String color){
      this.color = color;
    }    
  }




  // Toyota subclass
  class Toyota extends Car {
     public Toyota(){
       super();
     }
  }
  // Main class 
  public class Main {
    public static void main(String[] args) {
        Toyota myToyota = new Toyota("Brown");
        // "color" property inherited from "Car"
        System.out.println(
          myToyota.color); // Brown
    }
  }
Java 物件導向程式設計入門

一起來練習吧!

Java 物件導向程式設計入門

Preparing Video For Download...