Hamutaro - Hamtaro 4

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();     // ์ž์‹ ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ (์˜ค๋ฒ„๋ผ์ด๋”ฉ)
    }
}