TIL. 오버로딩, 오버라이딩

skj1211·2022년 8월 2일
0

22.08.02

오버로딩

같은 이름을 가진 메서드를 여러개 만들어 두는 경우를 말한다.
단,
1. 매개변수의 수가 달라야한다.
2. 매개변수의 수가 같다면 매개변수의 데이터 타입이 달라야 한다.

자바스크립트에서 오버로딩을 지원하지 않는다. 다만 arguments객체를 이용하면 구현은 가능하다.

ex)

void test(){
	System.out.println("매개변수 없음");
}
    
void test(int a){
	System.out.println("매개변수 :"+a);
}

void test(int b, int c){
	System.out.println("매개변수 :"b", "+c);
}

void test(String d){
	System.out.println("매개변수 : "+d);
}

오버라이딩

상위 클래스의 메서드를 하위 클레스가 재정의 하는 경우를 말함.
상속받은 메서드를 그대로 사용할 수도 있고 필요에 따라선 메서드를 재정의 하여 사용할 수 있다.

오버라이드를 시키려는 메소드가 상위 클래스에 있어야함
메소드 이름, 매개변수의 갯수, 매개변수의 타입 모두 같아야 한다.
메소드의 리턴형도 같아야 함
ex)

public class Parent {
	public void test {
    	System.out.println('부모 내용');
    }
}
class Child extends Parent {
	public void test {
    	System.out.println('상속 받은 부모 내용을 수정 -> 자식 내용');
    }
}

오버로딩과 오버라이딩 차이점

오버로딩은 메소드이름만 같고 매개변수의 수, 타입이 달라야함
오버라이딩은 메소드이름, 매개변수, 타입 모두 같아야함

오버로딩은 이름은 같지만 새로운 메서드를 정의하는 것
오버라이딩은 상속받은 메서드의 내용만 변경 하는 것

0개의 댓글