추상 클래스
추상클래스
객체를 직접 생성할 수 있는 클래스를 실체 클래스 라고합니다. 이 클래스들의 공통적인 특징을 추출해 선언한 클래스가 추상 클래스라고 한다. 추상클래스(부모)와 실재클래스(자식)는 상속관계를 갖는다.
예를들어 Animal은 추상클래스, Dog, Cat, Bird는 실재 클래스이다. 실체 클래스에서 공통되는 필드(멤버 변수)와 메소드를 따로 선언한 Animal.class가 추상 클래스다.
추상 클래스는 객체를 직접 생성해서 사용할 수 없다. new 연산자를 사용해 인스턴스를 생성시키지 못한다.
실제 클래스를 만들기 위해 부모 클래스로만 사용된다.
추상클래스 용도
실체 클래스들의 공통된 필드와 메소드의 이름을 통일할 목적
실체 클래스를 작성할 시간을 절약
추상메서드 용도
자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위함입니다.
예를 들면 모듈처럼 중복되는 부분이나 공통적인 부분은 미리 다 만들어진 것을 사용하고, 이를 받아 사용하는 쪽에서는 자신에게 필요한 부분만을 재정의하여 사용함으로써 생산성이 향상되고 배포 등이 쉬워지기 때문입니다.
이러한 추상 메소드는 선언부만이 존재하며, 구현부는 작성되어 있지 않습니다.
바로 이 작성되어 있지 않은 구현부를 자식 클래스에서 오버라이딩하여 사용하는 것입니다.
추상 클래스 선언
public abstract class 클래스 {
//멤버변수
//생성자
//메서드
abstract 반환타입 메소드이름(); //추상메서드는 중괄호가 없다.
}