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

// Dishクラスの定義
class Dish {
    // cookメソッド
    public void cook() {
        System.out.println("料理を作ります");
    }
}

// Pastaクラスの定義(Dishクラスを継承)
class Pasta extends Dish {
    // cookメソッドのオーバーライド
    @Override
    public void cook() {
        System.out.println("パスタを茹でます");
    }
}

// Pizzaクラスの定義(Dishクラスを継承)
class Pizza extends Dish {
    // cookメソッドのオーバーライド
    @Override
    public void cook() {
        System.out.println("ピザを焼きます");
    }
}

// メインクラス
public class Main {
    public static void main(String[] args) {
        // Dishクラスのインスタンス
        Dish genericDish = new Dish();
        genericDish.cook();  // 料理を作ります

        // Pastaクラスのインスタンス
        Pasta pastaDish = new Pasta();
        pastaDish.cook();  // パスタを茹でます

        // Pizzaクラスのインスタンス
        Pizza pizzaDish = new Pizza();
        pizzaDish.cook();  // ピザを焼きます
    }
}

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

「014 継承」問題集リスト