추상클래스

오가람·2022년 12월 23일
0
post-thumbnail

객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 한다면 이 클래스들의 공통적인 특성을 추출해서 선언한 클래스를 추상 클래스라고 합니다. 추상 클래스와 실체 클래스는 상속의 관계를 가지고 있습니다. 추상 클래스가 부모, 실체 클래스가 자식으로 구현되어 실체 클래스는 추상 클래스의 모든 특성을 물려받고, 추가적인 특성을 가질 수 있습니다.

여기서 특성이란 필드메소드들을 말합니다.
예를 들어 Bird.class, Insect.class, Fish.class 등의 실체 클래스에서 공통되는 필드와 메소드를 따로 선언한 Animal.class 클래스를 만들 수 있는데, 이것이 바로 추상 클래스 입니다.

추상 클래스의 용도

실체 클래스의 공통적인 특성(필드, 메서드)을 뽑아내어 추상 클래스로 만드는 이유가 무엇일까요?

  • 공통된 필드와 메소드의 이름을 통일할 목적
  • 실체 클래스를 작성할 때 시간 절약

추상 클래스 선언

추상 클래스를 선언할 때에는 클래스 선언에 abstract 키워드를 붙여야 합니다. abstract를 붙이면 new 연산자를 이용해서 객체를 만들지 못하고, 상속을 통해 자식 클래스만 만들 수 있습니다.

public abstract class 클래스 {
	//필드
    //생성자
    //메소드
}

추상 클래스도 일반 클래스와 마찬가지로 필드, 생성자, 메소드 선언을 할 수 있습니다. new 연산자로 직접 생성자를 호출할 수는 없지만 자식 객체가 생성될 때super(...)를 호출해서 추상 클래스 객체를 생성하므로 추상 클래스도 생성자가 반드시 있어야 합니다.

profile
개발자준비생

0개의 댓글