추상 클래스 선언 시 abstract
키워드 사용
public abstract class Phone{}
으로 추상 클래스 선언
추상 클래스 Phone을 상속하는 자식 클래스 SmartPhone 선언.
super(owner);
코드로 Phone의 생성자 호출
자식 클래스인 SmartPhone으로 객체 생성 후 Phone 클래스의 메소드 사용 가능
abstract 키워드와 함께 메소드 선언부만 있고 실행내용인 중괄호가 없는 메소드.
동물은 소리를 내는 공통적인 특징이 있지만, 소리가 같지 않음.
공통되는 "소리 낸다"는 특징만 규정하기 위해 추상 메소드 선언
자식 클래스에서 추상 메소드 재정의 안 하면 오류 발생
강아지와 고양이 울음 소리에 맞게 sound() 메소드 재정의함.
HrrpServelt이라는 추상 클래스를 실행하면 "로그인 합니다.", "파일 다운로드 합니다."가 차례대로 출력되도록 LoginServlet과 FileDouwnloadServlet 클래스 선언
추상 클래스 HttpServlet, 추상 메소드 service() 선언
실행 내용이 클래스별로 다르기 때문에 추상 메소드 사용
자식 클래스 선언, service() 메소드 재정의
LoginServlet: "로그인합니다."가 출력 되도록
FileDownloadServlet: "파일 다운로드합니다."가 출력 되도록
* 자식 클래스에서 추상 메소드 재정의하지 않을 시 오류 발생
실행 클래스 선언, 메소드 다형성 적용
부모 타입 배개 변수에 자식 객체 대입. 자식 객체가 부모 타입으로 자통 타입 변환되어 재정의된 메소드 호출됨.