Abstract-Class
1 Abstract Class
- 객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 한다
- 이 실체 클래스들의 공통적인 특성을 추출해서 선언한 클래스를 추상 클래스라고 한다.
- 추상 클래스와 실체 클래스는 상속 관계를 가지고 있다
- 실체 클래스는 추상 클래스의 모든 특성을 물려받고 추가적인 특성을 가질 수 있다
- 추상 클래스는 객체를 직접 생성해서 사용할 수 없다
- new 연산자로 인스턴스를 생성할 수 없다
2 추상 클래스의 용도
- 추상 클래스는 새로운 실체 클래스를 만들기 위해 부모 클래스로만 사용된다.
- 실체 클래스들의 공통된 필드와 메소드의 이름을 통일하는 것이 목적
- 실체 클래스를 작성할 때 시간을 절약
- 공통적인 특성을 갖는 추상 클래스를 부모로 상속하면 중복 코드가 적어져 시간이 절약된다.
- 설계 단계에서 추상 클래스를 미리 설계하면 시간이 많이 절약된다.
3 추상 클래스 선언
- 추상 클래스를 선언할 때 클래스 선언에
abstract키워드를 붙인다. abstract를 사용하면 new 연산자로 객체를 생성할 수 없다
public abstract class ClassName {
//필드
//생성자
//메소드
}
4 추상 클래스의 생성자
- 인스턴스화 될 수 없기 때문에 생성자가 필요 없다고 생각할 수 있지만 그렇지 않다
- 자식 클래스에서는 반드시 부모 클래스의 생성자를 호출해야 하므로 추상 클래스 역시 생성자가 반드시 필요하다.