본문 바로가기

프로그래밍/시스템

[java] 오버로딩과 오버라이딩

반응형

영어 뜻 풀이부터 해봅시다.


오버로딩은 

"다중정의" ,


오버라이딩은 

"재정의"


위와 같은 뜻을 가지고 있습니다.








먼저 오버로딩에 대해서 알아보겠습니다.



밑에 사진은 오버로딩 예제입니다.




메서드의 이름이 같아도 매개변수의 타입이나 갯수가 다르면 

서로 다른 메서드로 취급하는것이 오버로딩입니다.


홍길동이라는 이름을 가진 사람이 여러명있어도 서로 다른 사람이듯이

오버로딩 개념도 그렇습니다.







오버라이딩은  뭘까요?


한마디로 


자식클래스 : " 부모클래스가 나한테 A라는 메서드를 줬는데 별로 맘에 안들어..  내 입맛대로 바꿀래! " 

하는게 오버라이딩의 재정의입니다.






 오버라이딩 예제 코드를 봅시다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class AAA {
    
    void TEST(){
        System.out.println("부모클래스");
    }
}
 
class bbb extends AAA{
    
    void TEST(){
        System.out.println("난자식클래스!!");
    }
}
 
 
public class Test1 {
    
    public static void main(String[] args) {
                
                bbb te1 = new bbb();
                te1.TEST();
 
    }
cs



bbb클래스가 AAA클래스한테 TEST 메서드를 상속받았죠?

 

그러면 bbb에서 TEST메서드 호출하면 부모가 준것을 쓰게되는데


bbb라는 클래스가 TEST메서드를 다시 만들었네요.  


그럼 bbb의 메서드를 호출하면 어떻게 될까요? 


당연히 bbb클래스에서 재정의한 메서드를 쓰겟죠?




한마디로 부모클래스가 준 메서드 대신


자식클래스가 갖고있는 메서드가 실행이 되는것이 오버라이딩입니다.








반응형