1. 상속성과 다형성의 필요성
2. Override 처리의 문제 발생 가능성
3. 상속 처리 시 Override 강제하기
4. 추상 메서드 만들기
public abstract void sayHello();
-> 선언만 가능하고 구현부를 위한 블록이 존재하지 않는다.
5. 추상 클래스
추상 메서드를 포함한 클래스
추상 메서드를 하나 이상 포함하고 있는 클래스는 반드시 '추상 클래스'로 정의되어야 한다.
추상 클래스는 abstract 키워드를 사용하여 정의 할 수 있다.
public abstract class Hello{
public abstract void sayHello();
}
추상 클래스는 객체를 생성할 수 없고 반드시 상속을 통해서만 사용될 수 있다. 즉 추상 클래스는 다른 자식 클래스를 위한 '가이드라인'의 역할을 한다.
6. 공통 기능과 설계 제시를 모두 처리하기
추상 클래스는 생성자, 멤버변수, 일반 메서드등을 포함할 수 있다.
즉 공통 기능과 가이드라인을 모두 정의하여 클래스에게 상속될 수 있다.


-> abstract을 이용하여 추상클래스를 만들어 Army, Navy, Airforce라는 각각의 자식클래스들이 재 정의할 메서드를 명시한다.

-> 자식 클래스들은 추상 클래스가 명시한 메서드들을 사용한다(예시 : Army)
-> 육군, 해군, 공군을 할당하고 결과를 출력한다.