Car クラスを抽象化する

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

Sani Yusuf

Lead Software Engineering Content Developer

抽象クラスの説明

  • 「Car」という語はプレースホルダーにすぎません
  • どの種類の車かなど、詳細がまだ必要です

トヨタ

メルセデス

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

抽象クラスの食べ物のたとえ

  • レストランで単に「食べ物」だけは注文しません
  • 何を食べたいか種類を指定します
    • パン
    • パスタ

パン

パスタ

米

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

抽象クラスを理解する

  • 抽象クラスは継承先の機能をまとめるために存在します
  • 抽象クラスはインスタンス化できません
  • 抽象クラスは一般にコード実装を持ちません
Java によるオブジェクト指向プログラミング入門

Car 抽象クラス


  // Car 抽象クラス
  abstract class Car {    
    // 抽象 drive メソッド
     abstract void drive(); // No Code Implementation 

  }








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

抽象メソッド

  • 抽象メソッドには実装がない
  • 継承先のクラスは抽象メソッドを実装する必要がある

   // Car 抽象クラス
  abstract class Car {    
    // 抽象 drive メソッド
     abstract void drive(); // コードなし  
                            // 実装
  }





  // Toyota クラス 
  class Toyota extends Car {  
     void drive(){
      // Toyota の drive() 実装
    }           
  }
  // Porsche クラス
  class Porsche extends Car {  
     void drive(){
      // Porsche の drive() 実装
    }           
  }
Java によるオブジェクト指向プログラミング入門

具象メソッドの作成

  • 具象メソッドはコード実装のあるメソッド
  • サブクラスは具象メソッドを再実装する必要はない

  // 抽象 Car クラス
  abstract class Car {
    private int topSpeed;

    // 実装を持つ具象メソッド
    public getTopSpeed(){
         return this.topSpeed;
    }

    abstract void drive(); 
    // コード実装なし        
  }

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

練習してみましょう!

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

Preparing Video For Download...