public class Vehicle {
public void start() {
System.out.println("車両が始動しました");
}
}
public class Car extends Vehicle {
// Car クラス独自のフィールドやメソッドがあればここで宣言
// start メソッドのオーバーライド
@Override
public void start() {
// Car クラス独自の処理
System.out.println("車がエンジンをかけました");
// 親クラスの start メソッド呼び出し
super.start();
}
// Car クラス独自のメソッドがあればここで宣言
}この解答例では、Vehicle クラスに start メソッドがあり、それを Car クラスが継承しています。Car クラスでは start メソッドをオーバーライドし、「車がエンジンをかけました」と表示した後に、super.start() を使って親クラスの start メソッドも呼び出しています。これにより、親クラスのメッセージも表示されます。
明示的なスーパークラスのメソッド呼び出し
Javaにおいて、サブクラスでスーパークラスのメソッドをオーバーライドした場合、サブクラスで新しい実装をしたい場合でも、親クラスのメソッドを呼び出すことができます。これは、「明示的なスーパークラスのメソッド呼び出し」と呼ばれます。super キーワードを使用して行います。
以下はその基本的な構造です:
public class SuperClass {
public void method() {
System.out.println("SuperClass method");
}
}
public class SubClass extends SuperClass {
@Override
public void method() {
// 親クラスのメソッド呼び出し
super.method();
// サブクラス独自の処理
System.out.println("SubClass method");
}
}ここでは、SubClass が SuperClass を継承しています。SubClass では method をオーバーライドしていますが、super.method(); を使って親クラスの method を呼び出しています。これにより、親クラスの動作を利用しつつ、サブクラス独自の処理を追加できます。
この仕組みを使うことで、コードの再利用性や保守性を向上させることができます。


