継承でコードを共通化する

Java によるオブジェクト指向プログラミング入門

Sani Yusuf

Lead Software Engineering Content Developer

複数クラスの扱い

  // Toyota クラス
  class Toyota {
      public String model;
      public String color;
      public String licensePlate;  
  }
  // Honda クラス
  class Honda {
      public String model;
      public String color;
      public String licensePlate;       
  }
  // Mercedes クラス
  class Mercedes {
      public String model;
      public String color;
      public String licensePlate;        
  }
  • クラス作業では重複が起きがちです
Java によるオブジェクト指向プログラミング入門

継承の力

  • 継承で重複コードを解消します
  • 共有コードを1か所にまとめられます
  • extends でクラスが継承できます
  // Car クラス
  class Car {
     // すべての public プロパティは
     // 継承される
     public String model;
     public String color;
     public String licensePlate;  
 }

  // Toyota が Car を継承
  class Toyota extends Car {

  }
  // Honda が Car を継承
  class Honda extends Car {

  }
  // Mercedes が Car を継承
  class Mercedes extends Car {

  }
Java によるオブジェクト指向プログラミング入門

基底クラスの導入

  • 基底クラスは共有コードを持つクラスです
  • Car クラスは基底クラスの例です

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



Java によるオブジェクト指向プログラミング入門

サブクラスによる継承

  • サブクラスは基底クラスを継承するクラスです
  • Toyota クラスはサブクラスの例です
  • サブクラスは基底クラスのpublicプロパティとメソッドを継承します
  • super() は基底クラスのコンストラクタを呼び出します
  // Car 基底クラス
  class Car {
     public String model;
     public String color;
     public String licensePlate;  
 }

 // Toyota サブクラス
  class Toyota extends Car {


// Toyota コンストラクタ public Toyota(){ // super() は // 基底クラス (Car) のコンストラクタを呼ぶ super(); } }
Java によるオブジェクト指向プログラミング入門

継承インスタンスを作る

  • 基底クラスのプロパティはインスタンスで利用できます

  // Car クラス  
  class Car {
    public String color;   

    // Car のコンストラクタ
    public Car(String color){
      this.color = color;
    }    
  }




  // Toyota サブクラス
  class Toyota extends Car {
     public Toyota(){
       super();
     }
  }
  // Main クラス 
  public class Main {
    public static void main(String[] args) {
        Toyota myToyota = new Toyota("Brown");
        // "color" プロパティは "Car" から継承
        System.out.println(
          myToyota.color); // Brown
    }
  }
Java によるオブジェクト指向プログラミング入門

Let's practice!

Java によるオブジェクト指向プログラミング入門

Preparing Video For Download...