// 抽象クラス 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() を宣言ã—ã¦ã„ã¾ã™ã€‚ãれを継承ã™ã‚‹å…·è±¡ã‚¯ãƒ©ã‚¹ Dog 㨠Cat ãŒã€ãれãžã‚Œã®å‹•物ã®é³´ã声を出力ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ã‚’実装ã—ã¦ã„ã¾ã™ã€‚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 抽象クラスã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント