java

추상 클래스(abstract class)

쵸비 2022. 10. 26. 14:43
728x90

추상 클래스란 구체적이지 않고, 완성되지 않은 클래스를 의미한다.

  

클래스 앞에 abstract 키워드를 이용해서 정의

  

  

추상 클래스를 상속받은 클래스는 추상 클래스가 갖고 있는 추상 메소드를 반드시 구현해야 한다.

추상 클래스를 상속받고, 추상 클래스가 갖고 있는 추상 메소드를 구현하지 않으면 해당 클래스도 추상 클래스가 된다.

 

public class Duck extends Bird{

@Override
public void sing(){
 System.out.println("꽥꽥!!");
}

}

사용하기 위해서 Bird는 추상 클래스이므로 객체를 생성할 수 없다.

 

public class DuckExam{
 public static void main(String[] args){
 	Duck duck = new Duck();
    duck.sing();
    duck.fly();
    
    //Bird b = new Bird();
 }
}

  

추상클래스가 필요한 이유

어떤 메소드를 추상적으로 정의만 해놓고, 실제로 필요한 곳에서 필요에 따라서 재정의 하는 방식 입니다.

자식클래스들에서 강제로 무엇인가 꼭 재정의 해서 사용해야 될 경우가 발생되면, 추상 개념을 생각해야 합니다.

 

따라서, 부모 클래스의 메소드를 자식 클래스에서 변경할 일이 없다면, 일반 클래스를 이용한 상속이 좋습니다.

하지만, 자식클래스에서 꼭 재정의 해야 하는 부분이 있아면, 추상클래스를 이용하여 강제로 재정의(Override) 하게 해야 합니다.

728x90

'java' 카테고리의 다른 글

데이터 타입 분류와 메모리 사용 영역  (0) 2022.10.26
연산자(Operator)  (0) 2022.10.26
상속(Inheritance)  (0) 2022.10.26
접근 제어자  (0) 2022.10.26