問題
抽象クラス Vehicle を定義し、その中に抽象メソッド startEngine() を宣言します。この抽象クラスを継承する具象クラス Car と Motorcycle を作成し、それぞれ startEngine() メソッドを実装します。さらに、Vehicle クラスをインスタンス化してみて、どうしてエラーが発生するのかを考えてみてください。
ヒント
抽象クラス Vehicle を定義し、その中に抽象メソッド startEngine() を宣言するという問題に対する考察を行います。
- 抽象クラス Vehicle:
- Vehicleクラスは、車両(Vehicle)を表す抽象クラスとして定義されています。
- startEngine()メソッドはエンジンを起動する操作を表す抽象メソッドです。
 
- 具象クラス Car と Motorcycle:
- Carクラスと- Motorcycleクラスは、- Vehicleクラスを継承します。
- 各具象クラスでは startEngine()メソッドがオーバーライドされ、車やバイクのエンジン起動操作が実装されます。
 
- Vehicle クラスのインスタンス化:
- Vehicleクラスは抽象クラスであり、直接インスタンス化することができません。
- インスタンスを生成するには、具象クラス(CarまたはMotorcycle)を使用する必要があります。
 
- エラーが発生する理由:
- 抽象クラスは直接インスタンスを生成できないため、Vehicleクラスをインスタンス化しようとするとエラーが発生します。
- 抽象クラスは、具象クラスを通じて利用されることが意図されています。そのため、直接抽象クラスをインスタンス化することは禁止されています。
 
- 抽象クラスは直接インスタンスを生成できないため、
考察の結果、Vehicle クラスのインスタンス化がエラーとなるのは、抽象クラスの性質からくるものであり、この挙動は抽象クラスを適切に利用するためのルールの一環です。
→解答例

 
  
  
  
   
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
      
