JAVA/Theory

์˜ค๋ฒ„๋กœ๋”ฉ(Overloading)๊ณผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ(Overriding)

ITs Min 2023. 12. 6.

๐Ÿ”ฅ ์˜ค๋ฒ„๋กœ๋”ฉ(Overloading)

์˜ค๋ฒ„๋กœ๋”ฉ์€ ๊ฐ™์€ ๋ฉ”์„œ๋“œ ์ด๋ฆ„์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋งค๋ฒˆ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅด๊ฒŒ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์•ผ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์–ด๋–ค ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ• ์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒŒ ๋ฉ”์„œ๋“œ ์ด๋ฆ„์„ ๊ธฐ์–ตํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๊ณ , ์‚ฌ์šฉ๋„ ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค. 

public class ๊ณ„์‚ฐ๊ธฐ {
    public int ๋”ํ•˜๊ธฐ(int a, int b) {
        return a + b;
    }

    public double ๋”ํ•˜๊ธฐ(double a, double b) {
        return a + b;
    }
}

๐Ÿ’ง ์˜ค๋ฒ„๋ผ์ด๋”ฉ(Overriding)

์˜ค๋ฒ„๋ผ์ด๋”ฉ์€ ์ƒ์œ„ ํด๋ž˜์Šค์—์„œ ์ •์˜๋œ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ๋™์ผํ•œ ์ด๋ฆ„๊ณผ ์‹œ๊ทธ๋‹ˆ์ฒ˜๋กœ ๋ฎ์–ด์“ฐ๋Š” ๊ฒƒ์ด๋‹ค. ๋ฉ”์„œ๋“œ ์ด๋ฆ„, ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฐ˜ํ™˜ ํƒ€์ž…์ด ๋˜‘๊ฐ™์•„์•ผ ํ•œ๋‹ค. ๋‹คํ˜•์„ฑ์„ ์ด์šฉํ•ด์„œ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. 

class ๋™๋ฌผ {
    public void ์†Œ๋ฆฌ๋‚ด๊ธฐ() {
        System.out.println("๊พธ์—ฅ");
    }
}

class ๊ฐœ extends ๋™๋ฌผ {
    @Override
    public void ์†Œ๋ฆฌ๋‚ด๊ธฐ() {
        System.out.println("์™ˆ์™ˆ!");
    }
}

โšก ๊ฒฐ๋ก 

์˜ค๋ฒ„๋กœ๋”ฉ์€ ๊ฐ™์€ ๋ฉ”์„œ๋“œ ์ด๋ฆ„์„ ๋‹ค์–‘ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๊ณ , ์˜ค๋ฒ„๋ผ์ด๋”ฉ์€ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ๋ฎ์–ด์“ฐ๋Š” ๊ฒƒ์ด๋‹ค. ๋‘ ๊ฐ€์ง€ ๊ฐœ๋…์„ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ๋” ๊น”๋”ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์œ ์ง€๋ณด์ˆ˜๋„ ํŽธํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค!


 

๋Œ“๊ธ€

TOP

๋Šฆ์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ๋• ๋„ˆ๋ฌด ๋Šฆ์€ ๊ฑฐ๋‹ค.