OOP의 꽃이라 할 수 있는 다형성
어떤 객체의 속성이나 기능이 상황에 따라 여러가지 형태를 가질 수 있는 성질.
딱 저 말만 들었을 때 가장 비슷한 성질의 유형이 메서드 오버로딩, 오버라이딩이다.
public interface Vehicle {
public abstract void start()
void moveForward();
void moveBackward();
}
public class Car implements Vehicle {
@Override
public void moveForward() {
System.out.println("앞으로 가요");
}
@Override
public void moveBackward() {
System.out.println("뒤로 가요");
}
}
인터페이스의 경우, 다형성의 예로 각각의 클래스에 맞게 맥락에 맞춰 재정의 사용가능하다.
오버라이딩이지만, 오버로딩 또한 마찬가지이다.