메소드 오버라이딩
•
상위 클래스의 메소드를 재정의하는 것
•
example
public interface Movable {
void move();
}
public class Car implements Movable {
@Override
public void move() {
System.out.println("도로로 달립니다.");
}
}
public class Airplane implements Movable {
@Override
public void move() {
System.out.println("하늘을 납니다.");
}
}
public class Train implements Movable {
@Override
public void move() {
System.out.println("선로로 주행합니다.");
}
}
public class Main {
public static void main(String[] args) {
final List<Movable> movables = Arrays.asList(new Car(), new Train(), new Airplane());
for (final Movable movable : movables) {
movable.move();
}
}
}
// result
도로를 달립니다.
하늘을 납니다.
선로로 주행합니다.
Java
복사
•
Movable 이라는 인터페이스에서 move()라는 메소드 선언 후 각각의 Car, Train, Airplane 자식 클래스에서 move()메소드를 재정의.
•
main메소드에서 Movable클래스가 자식 클래스를 참조하여 선언하여 재정의된 move()메소드를 사용.