오버라이딩이란?
상위클래스로부터 상속받은 메서드의 내용을 변경하는 것.
오버라이딩의 조건, 특징
하위클래스에서 오버라이딩하는 메서드는 상위클래스의 메서드와
- 이름이 같아야 한다.
- 매개변수의 타입과 개수, 순서가 같아야 한다.
- 리턴타입이 같아야 한다.
다시말해, 선언부가 서로 일치해야 한다.
추가로,
- 접근제어자는 상위클래스의 메서드보다 같거나 커야한다.
- 예외는 상위클래스의 메서드보다 개수나 범위가 작아야 한다.
오버라이딩은 어떤 경우에 사용하는가?
상위클래스로부터 상속받은 메서드를 그대로 사용하기도 하지만, 하위클래스 자신에게 맞게 변경해야 하는 경우가 있을 때 오버라이딩 한다.
오버라이딩을 사용함으로써 생기는 장점
상속받은 메서드를 변경할 수 있으므로 효율성이 커지게 된다.
오버라이딩 사용 방법
class Parent
{
int i = 5;
void speaking()
{
System.out.println( "상위클래스의 메서드" );
System.out.println( i );
}
}
class Child extends Parent
{
int i = 10;
void speaking()
{
System.out.println( "오버라이딩한 하위클래스의 메서드" );
System.out.println( i );
System.out.println( super.i );
}
}
class OverridingTest
{
public static void main(String[] args)
{
Child c = new Child();
c.speaking();
}
}