오버라이딩
- 상속받은 조상의 메서드를 자신에 맞게 변경하는 것
- 선언부 변경불가, 구현부(내용)만 변경하는 것
오버라이딩의 조건
1.선언부가 조상 클래스의 메서드와 일치해야한다.
(반환타입,메서드이름,매개변수목록이 일치해야함)
2.접근제어자를 조상클래스의 메서드보다 좁은 범위로 변경할수 없다.
3.예외는 조상클래스의 메서드보다 많이 선언할 수 없다.
(적거나 같아야 한다)
public class Oop23_overiding {
public static void main(String[] args) {
Point3D_3 pp =new Point3D_3();
pp.x=3;
pp.y=5;
pp.z=7;
System.out.println(pp.getLocation());
}
}
class Point3{
int x;
int y;
String getLocation() {
return "x:"+x+" y:"+y;
}
}
class Point3D_3 extends Point3{
int z;
//조상클래스에 같은 getLocation()메서드도 있지만
//getLocation()을 부르면 자식메서드를 부르게 된다.
//가까운 것을 부름
String getLocation() {//선언부 변경x
return "x:"+x+" y:"+y+" z:"+z;//내용만 변경가능
}
}