014 継承(オーバーライドされたメソッドの利用) 026 解答例

// Zooクラスの定義
class Zoo {
    // welcomeVisitorsメソッド
    public void welcomeVisitors() {
        System.out.println("来場者を歓迎します");
    }
}

// Aquariumクラスの定義(Zooクラスを継承)
class Aquarium extends Zoo {
    // welcomeVisitorsメソッドのオーバーライド
    @Override
    public void welcomeVisitors() {
        System.out.println("水族館へようこそ");
    }
}

// SafariParkクラスの定義(Zooクラスを継承)
class SafariPark extends Zoo {
    // welcomeVisitorsメソッドのオーバーライド
    @Override
    public void welcomeVisitors() {
        System.out.println("サファリパークへようこそ");
    }
}

// メインクラス
public class Main {
    public static void main(String[] args) {
        // Zooクラスのインスタンス
        Zoo zoo = new Zoo();
        zoo.welcomeVisitors();  // 来場者を歓迎します

        // Aquariumクラスのインスタンス
        Aquarium aquarium = new Aquarium();
        aquarium.welcomeVisitors();  // 水族館へようこそ

        // SafariParkクラスのインスタンス
        SafariPark safariPark = new SafariPark();
        safariPark.welcomeVisitors();  // サファリパークへようこそ
    }
}

このコードでは、Zoo クラスが基本的な welcomeVisitors メソッドを提供し、Aquarium クラスと SafariPark クラスがそれを継承して必要なメソッドをオーバーライドしています。それぞれのクラスのインスタンスを作成し、メソッドを呼び出すことで、対応するメッセージが表示されます。

「014 継承」問題集リスト