기록 저장소
오버로딩(Overloading)과 오버라이딩(Overriding) 본문
1. 오버로딩(Overloading)
- 클래스 내에 같은 이름의 메소드를 여러개 선언하는 것을 말한다.
- 매개변수의 타입, 개수, 순서 중 하나가 달라야 하며, 리턴 값은 같아도 무관하다.
- 메소드의 이름과 매개변수의 타입, 개수, 순서를 모두 같게 하고 리턴 값만 다르게 주는 경우 컴파일 오류가 발생한다.
- 같은 메소드를 호출하면서도, 매개 값을 달리 주어 다형성을 구현할 수 있게 한다.
2. 오버라이딩(Overriding)
- 상속관계에 있는 클래스 간에 메소드를 재정의하는 것을 말한다.
- 부모 클래스의 메소드와 이름, 리턴타입, 매개 변수가 같아야 하며, 접근 제어자의 경우 보다 넓은 의미의 것으로 바꿀 수 있다.
- 메소드 선언시에 final 키워드를 사용하면 오버라이딩할 수 없는 메소드가 된다.
- @Override 어노테이션을 사용하면, 정확히 오버라이딩 된 것인지 여부를 컴파일러가 체크한다.
- 메소드가 오버라이딩 된 경우, 자식 객체에서 해당 메소드를 호출하면 오버라이딩 된 자식 메소드가 호출된다.
- 자식 클래스 내부에서 오버라이딩 된 부모 클래스의 메소드를 호출할 때는 super 키워드를 사용한다.
'Note > 개념정리' 카테고리의 다른 글
Call by value와 Call by reference (0) | 2019.08.17 |
---|---|
추상클래스와 인터페이스 (0) | 2019.08.17 |
프로세스(Process)와 스레드(Thread) (0) | 2019.08.14 |
자바(Java)의 특징 (0) | 2019.08.14 |
Parsing & Parser (0) | 2019.05.14 |