📌 추상 클래스
추상 클래스 는 'is-a' 관계를 나타내는 상속의 한 형태로 사용되며, 상태(필드)와 행동(메소드)을 모두 포함할 수 있다.
- 구체적인 인스턴스는 생성할 수 없으며, 추상 메서드를 포함할 수 있다.
- 추상 클래스는 상속을 통해서만 사용할 수 있다.
- 추상적 예시?
- 새 → 참새, 비둘기 등
- 동물 → 강아지, 고양이 등
- 추상 클래스 목적 → 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위함
- 예기치 않은 인스턴스화나, 오버라이드의 미구현의 걱정이 없다.
📌 추상클래스의 제약
1️⃣ 추상클래스는 new에 의한 인스턴스화가 금지 되어 있다
- 아래와 같이 생성할 수 없다. → 인스턴스화 할 수 없다.
public static void main(String[] args) {
Person person = new Person(); // 추상 클래스는 인스턴스를 생성할 수 없다.
}
2️⃣ 오버라이드를 강제로 해주어야 한다.
- 추상클래스를 상속받은 자식들은 추상 메서드를 꼭 정의(또는 오버라이드)해주어야 한다.
abstract class Person {
abstract public void laugh();
abstract public void calculateAge(int age);
}
public class Teacher extends Person {
//추상클래스의 추상 메서드를 정의해주어야 한다.
@Override
public void laugh(){
}
@Override
public void calculateAge(int age){
}
}