'@Override' 키워드를 사용하지 않고 메서드를 재정의 하는 과정에서 메서드 이름에 실수가 발생하더라도 에러가 아닌 새로운 메서드의 정의로 인식되므로 의도하지 않은 실행결과를 가져올 수 있다.
'@Override' 키워드를 사용하더라도 자식 클래스를 구현하는 개발자의 실수로 부모의 기능을 재정의 하지 않았다면, 다형성의 구현은 이루어지지 않게된다.
추상화 기법은 특정 클래스를 상속받은 경우, 부모의 특정 메서드들을 무조건 재정의하도록 강제하는 기법이다.
특정 메서드를 재정의하도록 강제함으로써, 자식 클래스들을 작성하기 위한 가이드의 역할을 할 수 있다.
즉, 추상화 기법은 java 클래스를 작성하기 위한 설계도를 소스코드 형태로 제시하는 역할을 한다.
// 선언만 가능하고, 구현부를 위한 블록이 존재하지 않는다.
public abstract void move();
// 추상 클래스의 정의
public abstract class Hello{
public abstract void move();
}
public abstract class Hello{
// 멤버변수
private String msg;
// 생성자
public Hello( String msg ){ this.msg = msg; }
// 일반 메서드
public String getMsg(){ return this.msg; }
// 선언만 되고, 구현부를 위한 블록이 존재하지 않는다.
public abstract void sayHello();
}