오버라이딩(Overriding)
오버라이딩(Overriding)
class Point {
int x, y;
String getLocation() {
return "x:" + x + ", y:" + y;
}
}
class Point3D extends Point {
int z;
// 오버라이딩 : 상속 받은 조상 클래스의 메서드를 변경
String getLocation() {
return "x:" + x + ", y:" + y + ", z:" + z; // 선언은 변경 불가, 구현부만 변경 가능
}
}
- 덮어쓰다.
- 상속 받은 조상의 메서드를 자신에 맞게 변경하는 것.
조건
- 선언부가 조상 클래스의 메서드와 일치해야 한다.
- 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
- 예외(throws)는 조상 클래스의 메서드보다 많이 선언할 수 없다.
오버로딩 vs 오버라이딩
class Parent {
void p_method() {}
}
class Child extends Parent {
void p_method() {} // 오버라이딩
void p_method(int i) {} // 오버로딩
void c_method() {} // 메서드 정의
void c_method(int i) {} // 오버로딩
void c_method() {} // ERROR:중복 정의
}
- 오버로딩 : 기존에 없는 새로운(이름이 같은) 메서드를 정의하는 것 (new)
- 오버라이딩 : 상속받은 메서드의 내용을 변경하는 것 (change, modify)
Author And Source
이 문제에 관하여(오버라이딩(Overriding)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@solda/오버라이딩Overriding저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)