[JAVA] μ˜€λ²„λ‘œλ”©κ³Ό μ˜€λ²„λΌμ΄λ”©μ˜ μ°¨μ΄λŠ” λ¬΄μ—‡μΌκΉŒμš”?

Overriding vs Overloading


μ˜€λ²„λΌμ΄λ”©κ³Ό μ˜€λ²„λ‘œλ”©μ€ μžλ°”μ—μ„œ ꡉμž₯히 μ€‘μš”ν•œ λΆ€λΆ„μž…λ‹ˆλ‹€. IT 개발자의 기술 λ©΄μ ‘μ˜ λ‹¨κ³¨λ¬Έμ œμ΄κΈ°λ„ ν•˜μ§€μš”. λΆ„λͺ…νžˆ λŒ€ν•™κ΅ 과정에 객체지ν–₯μ–Έμ–΄κ°€ μžˆμ—ˆμ„ν…Œκ³ , μ˜€λ²„λΌμ΄λ”©κ³Ό μ˜€λ²„λ‘œλ”©μ— λŒ€ν•΄μ„œ ν•œλ²ˆμ―€μ€ 듀어본적이 μžˆμ„ 것이고 μ–΄λŠμ •λ„ 감은 μ˜€μ‹€κ²λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ•Œκ³ μžˆλŠ” 것과 μž…μœΌλ‘œ κΊΌλ‚Ό 수 μžˆλŠ” 것은 λ‹€λ₯΄μ§€μš”. λ”°λΌμ„œ 이번 κΈ°νšŒμ— ν™•μ‹€νžˆ 읡힐 수 μžˆλ„λ‘ ν•œλ²ˆ λΉ„κ΅ν•˜μ—¬ μž‘μ„±ν•΄λ³΄μž ν•©λ‹ˆλ‹€.

μ •μ˜


 

1. Overrriding

μ˜€λ²„λΌμ΄λ”©μ€ μ½”λ“œ 내에 λ™μΌν•œ λ©”μ†Œλ“œ 이름과 맀개 λ³€μˆ˜λ₯Ό 가진 λ‘κ°œμ˜ λ©”μ†Œλ“œλ₯Ό κ°€μ§€λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. ν•΄λ‹Ή λ©”μ†Œλ“œλ“€ 쀑 ν•˜λ‚˜λŠ” λΆ€λͺ¨ ν΄λž˜μŠ€μ— 있고 λ‹€λ₯Έ ν•˜λ‚˜λŠ” μžμ‹ ν΄λž˜μŠ€μ— μžˆμŠ΅λ‹ˆλ‹€. μ˜€λ²„λΌμ΄λ”©μ„ 톡해 μžμ‹ ν΄λž˜μŠ€λŠ” λΆ€λͺ¨ ν΄λž˜μŠ€κ°€ μ œκ³΅ν•΄μ€€ λ©”μ„œλ“œλ₯Ό μž¬μ •μ˜ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

11

12

13

14

15

16

17
class Dog{

    public void bark(){

        System.out.println("κ°œκ°€ μ§–λ‹€");

    }

}

class Hound extends Dog{

    public void bark(){

        System.out.println("λŠ‘λŒ€κ°€ μ§–λ‹€");

    }

}

 

public class OverridingTest{

    public static void main(String [] args){

        Dog dog = new Hound();

        dog.bark();

    }

}

 

2. Overloading

μ˜€λ²„λ‘œλ”©μ€ ν•œ 클래슀 λ‚΄μ—μ„œ λ‘κ°œ ν˜Ήμ€ κ·Έ μ΄μƒμ˜ λ©”μ„œλ“œκ°€ 같은 이름을 κ°€μ‘Œμ§€λ§Œ λ‹€λ₯Έ νŒŒλΌλ―Έν„°(갯수, νƒ€μž…)λ₯Ό κ°€μ‘Œμ„ 경우λ₯Ό λ§ν•˜λŠ” 것 μž…λ‹ˆλ‹€. 

 1

 2

 3

 4

 5

 6

 7

 8

 9

10

11
class Dog{

    public void bark(){

        System.out.println("κ°œκ°€ μ§–λ‹€");

    }

 

    //overloading

    public void bark(int count){

    	for(int i=0; i<count; i++)

    		System.out.println("κ°œκ°€ μ§–λ‹€");

    }

}

 

 

μ˜€λ²„λ‘œλ”©μ˜ μ’…λ₯˜


μ˜€λ²„λ‘œλ”©μ—λŠ” λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©, μƒμ„±μž μ˜€λ²„λ‘œλ”© 두 μ’…λ₯˜κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€. 말 κ·ΈλŒ€λ‘œ λ©”μ†Œλ“œ μ˜€λ²„λ‘œλ”©μ€ λ©”μ†Œλ“œμ— λŒ€ν•œ μ˜€λ²„λ‘œλ”©μ„ μ˜λ―Έν•˜λŠ” 것이며 μƒμ„±μž μ˜€λ²„λ‘œλ”©μ€ μƒμ„±μžμ— λŒ€ν•œ μ˜€λ²„λ‘œλ”©μ„ μ˜λ―Έν•˜λŠ” 것 μž…λ‹ˆλ‹€.