메소드 오버라이딩
- 서브 클래스에서 슈퍼 클래스의 메소드를 중복으로 작성하는 것이다.
- 서브 클래스에서 중복으로 작성한 메소드의 실행되도록 보장된다.(동적 바인딩에 의해)
- 슈퍼 클래스 메소드의 원형(메소드 이름, 인타 타입 및 개수, 리턴 타입)이 동일하게 작성되야한다.
Class A
{
void f()
{
System.out.println("A의 f() 호출");
}
}
Class B extends A
{
void f() // 클래스 A의 f() 오버라이딩
{
System.out.println("B의 f() 호출");
}
}
라고 하자.
B b = new B();
b.f();
의 실행 결과는 "B의 f() 호출" 일것이다.
A a = new B();
a.f();
를 실행해도
동적 바인딩에 의해
오버라이딩 된 메소드인 B의 f()가 실행된다.
텍스트오버라이딩의 목적은 객체지향의 목표인 다형성 실현에 있다.
슈퍼 클래스의 멤버에 접근하고싶다면 super를 사용하면 된다.