Backend/Java

[μžλ°”] μ˜€λ²„λ‘œλ”©(Overloading)κ³Ό μ˜€λ²„λΌμ΄λ”©(Overriding)

carsumin 2021. 8. 18. 17:00

 

 

 

μžλ°”μ—μ„œ λ‹€ν˜•μ„±μ„ μ§€μ›ν•˜λŠ” λ°©λ²•μœΌλ‘œ λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”©κ³Ό μ˜€λ²„λΌμ΄λ”©μ΄ μžˆλ‹€.

 

 

μ˜€λ²„λ‘œλ”©

 

μ˜€λ²„λ‘œλ”©μ΄λž€ 같은 μ΄λ¦„μ˜ λ©”μ„œλ“œλ₯Ό μ—¬λŸ¬ 개 μ •μ˜ν•˜λŠ” 것

μ΄λ•Œ λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž…μ΄ λ‹€λ₯΄κ±°λ‚˜ κ°œμˆ˜κ°€ 달라야 ν•œλ‹€.

 

class Calculator {
    public int add(int a, int b) {
        return a + b;
    }

    public double add(double a, double b) {
        return a + b;
    }

    public int add(int a, int b, int c) {
        return a + b + c;
    }
}

public class Main {
    public static void main(String[] args) {
        Calculator calc = new Calculator();

        // μ˜€λ²„λ‘œλ”©λœ λ©”μ†Œλ“œ 호좜
        System.out.println(calc.add(5, 10));
        System.out.println(calc.add(5.5, 10.2));
        System.out.println(calc.add(1, 2, 3));
    }
}

 

 

μ˜€λ²„λΌμ΄λ”©

 

μƒμœ„ 클래슀의 λ©”μ„œλ“œλ₯Ό ν•˜μœ„ ν΄λž˜μŠ€μ—μ„œ μž¬μ •μ˜ν•˜λŠ” 것

μ˜€λ²„λΌμ΄λ”© 된 λ©”μ†Œλ“œλŠ” λΆ€λͺ¨ν΄λž˜μŠ€μ™€ 같은 λ©”μ†Œλ“œ 이름, λ°˜ν™˜ νƒ€μž…, λ§€κ°œλ³€μˆ˜λ₯Ό κ°€μ Έμ•Ό 함

 

class Animal {
    // λΆ€λͺ¨ 클래슀의 λ©”μ†Œλ“œ
    public void makeSound() {
        System.out.println("동물 μšΈμŒμ†Œλ¦¬");
    }
}

class Dog extends Animal {
    // μ˜€λ²„λΌμ΄λ”©λœ λ©”μ†Œλ“œ
    @Override
    public void makeSound() {
        System.out.println("κ°•μ•„μ§€λŠ” 멍멍");
    }
}

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

        myAnimal.makeSound();  // λΆ€λͺ¨ 클래슀 λ©”μ†Œλ“œ 호좜
        myDog.makeSound();     // μžμ‹ 클래슀 λ©”μ†Œλ“œ 호좜 (μ˜€λ²„λΌμ΄λ”©)
    }
}