ポリモーフィズム入門

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

Sani Yusuf

Lead Software Engineering Content Developer

ポリモーフィズムのデモ

  • ポリモーフィズムは、オブジェクト指向(OOP)でオブジェクトが複数の形を取れる概念です
  • クラス継承の例示

  // 抽象クラス Car
  abstract class Car {

    // 抽象メソッド drive
    abstract void drive(); 
    // 実装なし 

  }

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

  }
  // Tesla は Car を継承
  class Tesla extends Car {  

  }
  // Lamborghini は Car を継承
  class Lamborghini extends Car {          

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

メソッドのオーバーライド

  • @Override はメソッドの独自実装を定義するためのキーワードです
  // 抽象クラス Car
  abstract class Car {

    // 抽象メソッド drive
    abstract void drive(); 
    // 実装なし 

  }


 class Toyota extends Car {  
   @Override // メソッドをオーバーライド
    void drive() {
      // Toyota 固有の実装
    }  
 }
 class Tesla extends Car {   
   @Override
    void drive() {
      // Tesla 固有の実装
    } 
 }
 class Lamborghini extends Car {  
   @Override
    void drive() {
      // Lamborghini 固有の実装
    }   
 }
Java によるオブジェクト指向プログラミング入門

インターフェースメソッドのオーバーライド


  // ElectricCar インターフェース
  interface ElectricCar {

    abstract void charge(); 
    // 実装なし 

  }


  • インターフェース実装時は @Override の明記を推奨します

  // Tesla クラスは 
  // ElectricCar を実装
  class Tesla implements ElectricCar {

    // charge は実装必須
    @Override
    void charge(){
      // Tesla 固有の充電実装
      // インターフェースによる選択的継承
    }          
  }













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

メソッドのオーバーロード

  • オーバーロードは同名メソッドに別実装を持たせられます

  // Toyota クラス 
  class Toyota {   

    void drive() {
      // drive メソッドの最初の実装
    }

// オーバーロードした drive メソッド void drive(int topSpeed) { // 2つ目の実装 } }
Java によるオブジェクト指向プログラミング入門

コンストラクタのオーバーロード

  • コンストラクタは同一クラス内で複数定義できます(オーバーロード)
  // Honda クラス
  class Honda {
    // 1つ目のコンストラクタ
    public Honda(String color,
                 String model) {

    }

// 2つ目のコンストラクタ public Honda(String color, String model, String licensePlate) { } }

  public class Main {  
    public static void main(
      String[] args) {

      // 1つ目のコンストラクタの使用
      Honda hondaOne = 
        new Honda("Red", "Accord");


// 2つ目のコンストラクタの使用 Honda hondaTwo = new Honda("Red", "Civic", "FST-1977"); } }
Java によるオブジェクト指向プログラミング入門

Ayo berlatih!

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

Preparing Video For Download...