Java - @Override 활용, 사용 방법

반응형

Overriding

  • 부모 클래스의 상속 받은 메소드를 재정의 하는 것

@Override

  • 오버라이딩을 할 때 프로그래머의 실수를 방지 하기 위해 사용
  • 부모 클래스의 메소드와 이름이 다르면 에러 출력
  • 오버라이딩을 할 메소드 위에 어노테이션 오버라이드를 정의

@Override 예시

부모 클래스의 print 메소드를 자식 클래스에서 오버라이딩

오버라이딩하는 메소드 위에 @Override 정의

public class Parent {
	protected String pMsg;

	public void print() {
		System.out.println("Parent : " + pMsg);
	}
}

public class Child extends Parent {
	protected String cMsg;

	@Override
	public void print() {
		super.print();
		System.out.println("Parent : " + cMsg);
	}
}

만약 @Override를 정의하지 않는다면?

아무 일도 일어나지 않는다.

다만, 오버라이딩하는 메소드의 이름이 틀릴 경우 프로그램이 잘못 작동 될 확률 높다.

그렇기 때문에 프로그래머의 실수를 방지하기 위해서 사용해두는 것이 좋다.

  • 오버라이딩하는 메소드의 이름 print
  • 자식 클래스에서 printChild 메소드로 오버라이딩 시도
public class Child extends Parent {
	protected String cMsg;

	@Override
	public void printChild() {
		super.print();
		System.out.println("Parent : " + cMsg);
	}
}

 

  • 에러 - 오버라이딩 할 메소드가 부모 클래스의 메소드와 다름

반응형