JAVA

[ java ] 추상클래스

Adose 2024. 12. 10. 16:15

📌 추상 클래스

추상 클래스 는 '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){
    }
    

}