016 抽象クラス(抽象メソッドと具象メソッド) 007 解答例

// 抽象クラス Animal
abstract class Animal {
    // 鳴き声を表す抽象メソッド
    public abstract void makeSound();
}

// 具象クラス Dog
class Dog extends Animal {
    // 犬の鳴き声を出力するメソッド
    @Override
    public void makeSound() {
        System.out.println("Dog barks: Woof! Woof!");
    }
}

// 具象クラス Cat
class Cat extends Animal {
    // 猫の鳴き声を出力するメソッド
    @Override
    public void makeSound() {
        System.out.println("Cat meows: Meow! Meow!");
    }
}

// メインクラス
public class Main {
    public static void main(String[] args) {
        // Dog クラスの利用例
        Dog myDog = new Dog();
        
        // 犬の鳴き声を呼び出し
        myDog.makeSound();  // 出力: Dog barks: Woof! Woof!

        // Cat クラスの利用例
        Cat myCat = new Cat();
        
        // 猫の鳴き声を呼び出し
        myCat.makeSound();  // 出力: Cat meows: Meow! Meow!
    }
}

この例では、Animal クラスが抽象メソッド makeSound() を宣言しています。それを継承する具象クラス DogCat が、それぞれの動物の鳴き声を出力するメソッドを実装しています。Main クラスで Dog クラスと Cat クラスをインスタンス化して、それぞれの makeSound() メソッドを呼び出すことで、犬と猫の鳴き声が表示されます。

出力結果:

Dog barks: Woof! Woof!
Cat meows: Meow! Meow!

具象クラス Dog のインスタンスを作成し、makeSound() メソッドを呼び出した結果、”Dog barks: Woof! Woof!” という文字列が表示されます。同様に、具象クラス Cat のインスタンスを作成し、makeSound() メソッドを呼び出した結果、”Cat meows: Meow! Meow!” という文字列が表示されます。

「016 抽象クラス」問題集リスト