[Java] 추상클래스

Java
avatar
2025.04.18
·
3 min read

추상 클래스

메서드의 본체가 완성되지 않은 미완성 메서드

  • 메서드의 기능을 정의하는 중괄호 안이 비어 있다는 것이 아니라 중괄호 자체가 없음

예. abstract void 함수명();


추상 메서드를 1개 이상 포함하고 있는 클래스는 반드시 추상 클래스로 정의되어야 함
예.

abstract class 클래스명 {
	abstract void 함수명();
    
    void 함수명() {
    ...
    }
}

추상 클래스의 특징

  • 객체를 직접 생성할 수 없음
    -> 힙 메모리에 생성되는 객체는 내부 요소가 미완성된 상태로 들어갈 수 없기 때문

  • 추상 클래스를 상속한 자식 클래스를 생성하면 그 자식 클래스로는 객체를 생성할 수 있음

  • 추상 클래스를 상속하는 자식 클래스는 부모에게 상속받은 추상 메서드(미완성 메서드)를 반드시 완성 = 오버라이딩 해야 함.

오버라이딩 Overriding - 부모에게 상속받은 메서드를 자식 클래스에서 재정의하는 것

구현 implements - 부모에게 물려받은 미완성 메서드를 자식 클래스에서 완성하는 것

추상 클래스 타입의 객체 생성 방법

1. 추상 클래스를 상속한 일반 클래스를 생성

  • 객체를 여러 개 만들어야 하는 상황: 자식 클래스를 직접 정의하는 것이 적절

2. 익명 이너 클래스를 사용

  • 한 번만 사용할 객체일 때 유리

  • 추가로 자식 클래스를 정의하지 않아도 됨

  • 코드가 간결함

5266

출처: Do it! 자바 완전 정복
(https://search.shopping.naver.com/book/catalog/32455536636?cat_id=50010920&frm=PBOKPRO&query=Do+it%21+%EC%9E%90%EB%B0%94+%EC%99%84%EC%A0%84+%EC%A0%95%EB%B3%B5&NaPm=ct%3Dm9m8s7hc%7Cci%3D3aaa7697f4251deefda5b7262b395d795e62e7e1%7Ctr%3Dboknx%7Csn%3D95694%7Chk%3D4f179279c1abd08fb580af5585cc2a207598dd86)