[OOP] 오버라이딩 (vs. 오버로딩)
오버라이딩
-
상속받은 조상의 메서드를 자신에 맞게 변경하는 것 (덮어쓰기)
-
오버라이딩 시, { } 안의
구현부 내용만 변경 가능
하며
메서드명, 파라미터, 리턴타입은 동일
해야 한다. -
접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
-
예외는 조상 클래스의 메서드보다 적거나 같아야 한다. (많을 수 없음)
Class Point {
int x;
int y;
String getLocation() {
return "x: " + x + ", y: " + y;
}
}
Class Point3D extends Point() {
int z;
String getLocation() { //오버라이딩
return return "x: " + x + ", y: " + y + ", z: " + z;
}
}
오버라이딩 vs. 오버로딩
-
오버라이딩(overriding) : 상속받은 메서드의 내용을
변경
(modify) -
오버로딩(overloading) : 이름은 같지만 기존과 다른 메서드를
새롭게 정의
(new)
(⇒ 상속과는 전혀 관계가 없음!)
- 아래 코드에서 메서드 구분 :
- 메서드 오버라이딩
- 메서드 오버로딩
- 메서드 정의
- 메서드 중복정의 → error 발생
Author And Source
이 문제에 관하여([OOP] 오버라이딩 (vs. 오버로딩)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gusl5525/OOP-오버라이딩-vs.-오버로딩저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)