
1. 추상화
1-1. 상속성과 다형성의 필요성
1-2. Override 처리의 문제 발생 가능성
@Override 키워드를 사용하지 않고 메서드를 재정의하는 과정에서 메서드 이름에 실수가 발생하더라도 에러가 아닌 새로운 메서드의 정의로 인식되므로, 의도하지 않은 실행결과를 가져올 수 있다.
@Override 키워드를 사용하더라도 자식 클래스를 구현하는 개발자의 실수로 인하여 부모의 기능을 재정의하지 않았다면 다형성의 구현은 이루어지지 않게 된다.
1-3. 상속 처리시 Override 강제하기
1-4. 추상 메서드 만들기
추상 메서드를 정의하기 위해서는 'abstract' 키워드를 사용하여 메서드를 정의한다.
추상 메서드는 자식 클래스가 구현해야 하는 메서드의 가이드라인만 제시하기 위한 목적으로 사용되기 때문에, 선언만 가능하고 구현부가 없다.
public abstract void sayHello(); // 구현부가 없음. 즉 중괄호 영역이 없음.
1-5. 추상 메서드를 포함한 클래스
추상 메서드를 하나 이상 포함하고 있는 클래스는 반드시 '추상 클래스'로 정의되어야 한다.
추상 클래스는 'abstract' 키워드를 사용하여 정의할 수 있다.
// 추상 클래스의 정의
public abstract class Hello{
public abstract void sayHello();
}
추상 클래스는 객체를 생성할 수 없고, 반드시 상속을 통해서만 사용할 수 있다. 즉, 추상 클래스는 다른 자식 클래스를 위한 '가이드라인'의 역할을 한다.