Skip to Content
Suffering builds character

10. 추상 클래스

1. 추상 클래스, Abstract class

클래스를 객체의 설계도라고 비유할 때,

어떤 클래스의 멤버에 구현이 완료되지 않은 메서드가 하나라도 있을 경우, 해당 클래스는 객체에 대한 설계가 미완성 상태인 미완성 설계도라고 볼 수 있음

Animal.java
public class Animal { // 미완성 클래스 Animal public abstract void sing(); }

이러한 클래스를 추상 클래스(Abstract class)라고 하며,

해당 클래스는 아직 구현되지 않은 메서드가 하나라도 존재하는 클래스임을 명시하기 위해 class 키워드 앞에 abstract 키워드를 추가해야함

Animal.java
public abstract class Animal { // OK public abstract void sing(); }

class Animal 부분의 컴파일 에러가 해결됨

추상 클래스로 객체 생성 코드 작성 시,

Main.java
Animal a = new Animal(); // Error. Cannot instantiate the type Animal

Animal 클래스로 객체를 생성(instantiate)할 수 없음

2. 추상 클래스, 추상 메서드 작성 규칙

문법적으로 정리하면,
추상 메서드는 메서드의 선언부는 작성되어 있는데, 구현부가 없는 메서드를 의미

선언부

// 접근제어자 반환타입 메서드명 public void sing();

구현부

// 메서드 내에 실제 구현된 코드 { System.out.println("동물이 노래를 한다"); }

만약 어떤 클래스가 추상 메서드를 하나라도 가지고 있으면,

해당 클래스로 객체를 생성할 경우 추상 메서드를 호출 시 수행할 동작이 없기 때문에 그 클래스는 반드시 객체를 생성할 수 없는 추상 클래스로 선언해야함

Last updated on