DEV/Java

Overriding(μž¬μ •μ˜)

Beomsu Koh 2023. 4. 27.

Overriding - πŸ₯ 카카였 ν…Œν¬ 캠퍼슀

μ˜€λ²„λΌμ΄λ”©μ€ μƒμœ„ ν΄λž˜μŠ€μ— μ •μ˜λœ λ©”μ„œλ“œμ˜ κ΅¬ν˜„ λ‚΄μš©μ΄ ν•˜μœ„ ν΄λž˜μŠ€μ—μ„œ κ΅¬ν˜„ν•  λ‚΄μš©κ³Ό λ§žμ§€ μ•ŠλŠ” 경우 ν•˜μœ„ ν΄λž˜μŠ€μ—μ„œ λ™μΌν•œ μ΄λ¦„μ˜ λ©”μ„œλ“œλ₯Ό μž¬μ •μ˜ ν•  수 μžˆλ‹€.

  • ν•˜μœ„ ν΄λž˜μŠ€μ—μ„œ μƒμœ„ 클래슀의 λ©”μ„œλ“œμ™€ λ™μΌν•œ ν•¨μˆ˜ μ‹œκ·Έλ‹ˆμ²˜λ₯Ό κ°€μ§„ λ©”μ„œλ“œλ₯Ό μ •μ˜ν•œλ‹€.
  • κΈ°λŠ₯을 λ³€κ²½ν•˜κ±°λ‚˜ ν™•μž₯ν•  λ•Œ μ‚¬μš©ν•œλ‹€.
  • @Override μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•΄ λͺ…μ‹œμ μœΌλ‘œ μ˜€λ²„λΌμ΄λ”©μž„μ„ ν‘œμ‹œν•  수 μžˆλ‹€.

μ˜ˆμ‹œ

class Animal {
    void makeSound() {
        System.out.println("The animal makes a sound");
    }
}

class Dog extends Animal {
    @Override
    void makeSound() {
        System.out.println("The dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myAnimal = new Animal();
        Animal myDog = new Dog();

        myAnimal.makeSound(); // 좜λ ₯: The animal makes a sound
        myDog.makeSound();    // 좜λ ₯: The dog barks
    }
}

μœ„ μ˜ˆμ‹œμ—μ„œ Dog ν΄λž˜μŠ€λŠ” Animal 클래슀λ₯Ό 상속받고, makeSound λ©”μ„œλ“œλ₯Ό μ˜€λ²„λΌμ΄λ”©ν•˜μ—¬ "The dog barks"λΌλŠ” λ©”μ‹œμ§€λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.
μ΄λ ‡κ²Œ ν•˜μœ„ 클래슀인 Dogμ—μ„œ μƒμœ„ 클래슀인 Animal의 λ©”μ„œλ“œλ₯Ό μž¬μ •μ˜ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λΆ€μ‘±ν•œ μ μ΄λ‚˜ 잘λͺ» 된 점을 μ•Œλ €μ£Όμ‹œλ©΄ μ‹œμ •ν•˜κ² μŠ΅λ‹ˆλ‹€ :>

λŒ“κΈ€