๊ด€๋ฆฌ ๋ฉ”๋‰ด

bom's happy life

์ถ”์ƒํด๋ž˜์Šค ์˜ˆ์‹œ ๋ณธ๋ฌธ

Deveolpment Study๐Ÿ—‚๏ธ/JAVA

์ถ”์ƒํด๋ž˜์Šค ์˜ˆ์‹œ

bompeach 2024. 4. 19. 16:30

์—ฌ๋Ÿฌ ํด๋ž˜์Šค๊ฐ€ ๊ณตํ†ต์ ์œผ๋กœ ๊ฐ€์ง€๋Š” ํŠน์„ฑ์„ ์ถ”์ƒ ํด๋ž˜์Šค๋กœ ์ถ”์ถœํ•˜๋Š” ๊ฒฝ์šฐ

 

์˜ˆ๋ฅผ ๋“ค์–ด, ๋™๋ฌผ์„ ๋ชจ๋ธ๋งํ•˜๋Š” ํด๋ž˜์Šค๋“ค์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •.

๊ฐ ๋™๋ฌผ์€ ์†Œ๋ฆฌ๋ฅผ ๋‚ด๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ,

๊ฐ ๋™๋ฌผ๋งˆ๋‹ค ์†Œ๋ฆฌ๋ฅผ ๋‚ด๋Š” ๋ฐฉ์‹์€ ๋‹ค๋ฅผ ๊ฒƒ.

 

์ด๋Ÿฐ ๊ฒฝ์šฐ, ์ถ”์ƒ ํด๋ž˜์Šค์™€ ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณตํ†ต์ ์ธ ํŠน์„ฑ์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

// ์ถ”์ƒ ํด๋ž˜์Šค Animal ์ •์˜
abstract class Animal {
    private String name;

    // ์ƒ์„ฑ์ž
    public Animal(String name) {
        this.name = name;
    }

    // ์ถ”์ƒ ๋ฉ”์„œ๋“œ - ๋™๋ฌผ์ด ์†Œ๋ฆฌ๋ฅผ ๋‚ด๋Š” ๊ธฐ๋Šฅ
    public abstract void makeSound();

    // ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ - ๋™๋ฌผ์˜ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜
    public String getName() {
        return name;
    }
}

// Animal ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ๊ตฌ์ฒด์ ์ธ ๋™๋ฌผ ํด๋ž˜์Šค๋ฅผ ์ •์˜
class Dog extends Animal {
    // ์ƒ์„ฑ์ž
    public Dog(String name) {
        super(name);
    }

    // ์ถ”์ƒ ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
    @Override
    public void makeSound() {
        System.out.println(getName() + "๊ฐ€ ๋ฉ๋ฉ ์ง–์Šต๋‹ˆ๋‹ค.");
    }
}

class Cat extends Animal {
    // ์ƒ์„ฑ์ž
    public Cat(String name) {
        super(name);
    }

    // ์ถ”์ƒ ๋ฉ”์„œ๋“œ ๊ตฌํ˜„
    @Override
    public void makeSound() {
        System.out.println(getName() + "๊ฐ€ ์•ผ์˜น ์†Œ๋ฆฌ๋ฅผ ๋ƒ…๋‹ˆ๋‹ค.");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal dog = new Dog("๋ฉ๋ฉ์ด");
        dog.makeSound(); // ๋ฉ๋ฉ์ด๊ฐ€ ๋ฉ๋ฉ ์ง–์Šต๋‹ˆ๋‹ค.

        Animal cat = new Cat("์•ผ์˜น์ด");
        cat.makeSound(); // ์•ผ์˜น์ด๊ฐ€ ์•ผ์˜น ์†Œ๋ฆฌ๋ฅผ ๋ƒ…๋‹ˆ๋‹ค.
    }
}