오버라이딩과 오버로딩 둘 다 같은(중복된) 이름의 메소드에 대한 기능이다.
오버라이딩이란
부모 클래스/인터페이스에 존재하는 메소드를 자식 메소드에서 필요에 맞게 재정의하는 것을 말한다.
동적바인딩 된다는 특징이 있다.
동적바인딩이란?
런타임에 호출될 함수가 결정되는 것이다.
interface Parent {
public void method();
}
class Child extends Parent {
@Override
public void method() {
logic();
}
}
해당 경우 Child에서 method()를 호출했을 때, Parent 클래스에 있는 method가 아닌 override된 Child 내의 메소드 로직이 실행된다.
오버로딩이란
같은 이름의 메소드지만 매개변수의 타입이 다르거나 갯수가 다른 메소드를 만드는 것이다.
정적바인딩 된다는 특징이 있다.
정적바인딩 이란?
컴파일 타임에 호출될 함수가 결정된다.
함수(메소드)는 기본적으로 정적바인딩 된다.
빌드 중에 이루어진다.
public void method() {
logic();
}
public void method(Parameter parameter) {
logic1();
}
public void method(Parameter parameter, OtherParameter otherParameter) {
logic2();
}
'Language > Java' 카테고리의 다른 글
Java 기본 - Wrapper Class 래퍼 클래스 (0) | 2023.06.30 |
---|---|
Java 기본 - 접근자 (0) | 2023.06.30 |
Java 기본 - final 키워드 (0) | 2023.06.29 |
Java 기본 - 제네릭 Generic (0) | 2023.06.27 |
Java 기본 - Annotation (0) | 2023.06.26 |