추상 클래스

김민혁·2022년 1월 24일
0

정의

  • 자손 클래스에서 반드시 재정의해서 사용되기 때문에 조상의 구현이 무의미한 메서드
    • 메서드의 선언부만 남기고 구현부는 세미콜른으로 대체
    • 구현부가 없다는 의미로 abstract 키워드를 메서드 선언부에 추가
    • 객체를 생성할 수 없는 클래스라는 의미로 클래스 선언부에 abstract를 추가한다.

특징

  • abstract 클래스는 상속 전용의 클래스
    • 클래스 구현부가 없는 메서드가 있으므로 객체를 생성할 수 없음
    • 생성자는 있다.
    • 하지만 상위 클래스 타입으로써 자식을 참조할 수는 있다.
    Vehicle v - new Vehicle(); // XXXXX
    Vehicle v = new DieselSUV(); // OO, 참조는 가능
  • 조상 클래스에서 상속받은 abstract 메서드를 재정의 하지 않은 경우
    • 클래스 내부에 abstract 메서드가 있는 상황이므로 자식 클래스는 abstract 클래스로 선언되어야 함

사용하는 이유

  • abstract 클래스는 구현의 강제를 통해 프로그램의 안정성 향상
  • interface에 있는 메서드 중 구현할 수 있는 메서드를 구현해 개발의 편의 지원
profile
학생

0개의 댓글