메서드 오버라이딩(Overriding)
- 상속받은 조상의 메서드를 자신에 맞게 변경하는 것
class Point{
int x;
int y;
String getLocation() {
return "x:" + x + ",y:" + y;
}
}
class Point3D extends Point {
int z;
String getLocation() { //오버라이딩
return "x:" + x + ",y:" + y + ",z:" + z;
}
}
오버라이딩 메서드를 선언할 때 주의할점은 선언부는 그대로 써야한다. 변경이 불가능하며 내용만 변경을 한다.
오버라이딩의 조건
1. 선언부가 조상클래스의 메서드와 일치해야한다.
2. 접근제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
3. 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.
오버로딩 vs 오버라이딩
class Parent{
void parentMethod() {}
}
class Child extends Parent {
void parentMethod() {} //오버라이딩
void parentMethod(int i) {} //오버로딩
void childMethod() {} //메서드 정의
void childMethod(int i){} //오버로딩
void childMethod() {} //중복정의
오버로딩 - 기존에 없는 새로운 메서드를(이름이 같은) 정의하는 것
오버라이딩 - 상속받은 메서드의 내용을 변경하는 것
'객체지향' 카테고리의 다른 글
[상속] 제어자, static , final (0) | 2021.11.06 |
---|---|
[상속] 참조변수 super, 생성자 super() (0) | 2021.11.05 |
[상속] 단일상속 , Object클래스 (0) | 2021.11.05 |
[상속] 클래스간의 관계, 상속과 포함 (0) | 2021.11.04 |
[상속] 상속 개념 (0) | 2021.11.03 |