Java에서 다형성을 보장하는 대표적인 기능들
같은 이름의 method를 매개변수를 다르게 하여 여러개 만드는 것
컴파일 시에 같은 이름의 method 중 호출되는 method를 결정하는 정적 바인딩이 일어남
public void getNumber();
public void getNumber(int a, int b);
public void getNumber(double a);
상위 클래스가 가지고 있는 method를 하위 클래스에서 재정의하는 것
method 이름, 매개변수, return type 다 상위 클래스의 method와 동일해야 함. 내용만 다르게!
실행 시간에 오버라이딩된 method를 찾아 호출하는 동적 바인딩이 일어남
단, static, private, final 메소드는 override가 일어나지 않음
class Player{
public void play(){
System.out.println("play");
}
}
class Artist extends Player{
@Override
public void play(){
System.out.println("draw");
}
}