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