TIL: 스스로 이해한 것을 바탕으로 정리하였기에 오류가 있을 수 있습니다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다.
오버라이딩(Overriding)
메소드 재정의라고도 부른다.
상속받고 있는 부모클래스의 메소드를 자식메소드에서 새롭게 정의하는 것
재정의할 때 메소드 상단에 @Override 어노테이션을 사용하는 것이 매너이다.
(어노테이션(Annotation): 재정의했다는 것을 알려주는 목적으로 사용하며 어노테이션을 붙여준 경우엔 메소드 이름을 동일하게 작성해야한다.)
성립조건
부모클래스의 메소드와 자식클래스의 메소드는
- 메소드명, 매개변수의 개수, 타입, 반환형 동일해야하며
- 접근제어자를 부모클래스와 같거나 보다 넓은 범위로 변경할 수 있다.
- private 메소드는 오버라이딩이 불가하다.
- 자식클래스에서 재정의된 메소드가 우선권을 가지면서 실행된다.
오버로딩(Overloading)
한 클래스 내에서 같은 이름의 메소드를 여러개 정의하는 것
같은 메소드명을 가지고 있어도, 매개변수가 다르면 다르게 인식한다.
메소드의 리턴타입은 오버로딩 조건과는 관계가 없다.
오버라이딩 VS 오버로딩
'Java' 카테고리의 다른 글
[Java] 추상메소드? 추상클래스와 추상메소드 (0) | 2021.01.19 |
---|---|
[Java] 다형성? 업캐스팅과 다운캐스팅 그리고 instanceof 연산자 (0) | 2021.01.18 |
[Java] 상속? 예제로 알아보는 상속의 목적과 장점 (0) | 2021.01.12 |
[Java] 객체배열? 선언과 할당, 초기화 (0) | 2021.01.11 |
[Java] 객체지향_예제1. 추상화, 캡슐화를 통해 정보출력하기 (0) | 2021.01.10 |
댓글