메서드 오버라이딩(overriding)
- override : v. 덮어쓰다.
- 상속받은 조상의 메서드를 자신에 맞게 변경하는 것.
public class EX7_3 {
public static void main(String[] args) {
My3DPoint mp = new My3DPoint();
System.out.println(mp.toString());
System.out.println(mp);
}
}
class MyPoint{
int x;
int y;
String getLocation(){
return "x: "+x+", y: "+y;
}
public String toString(){
return "toStringOverriding";
}
}
class My3DPoint extends MyPoint{
int z;
String getLocation(){
return "x: "+x+", y: "+y+", z: "+z;
}
}
오버라이딩 조건
- 선언부가 조상 클래스의 메서드와 일치해야 한다.
- 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.(public, protected, default, private)
- 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.
class Parent{
void parentMethod() throws IOException, SQLException {
}
}
class Child extends Parent{
void parentMethod() throws IOException{
}
}
오버로딩 vs. 오버라이딩
- 오버로딩 : 기존에 없는 새로운 메서드를 정의하는 것(new)
- 오버라이딩 : 상속받은 메서드의 내용을 변경하는 것(change, modify)