추상 메서드/추상 클래스 규칙

앞면

추상 메서드와 추상 클래스의 정의·규칙은? (관계 포함)

뒷면

  • 추상 메서드 = 시그니처만 있고 바디가 없는 메서드 (abstract 키워드, 바디 {} 금지)
  • 추상 메서드가 하나라도 있으면 그 클래스는 반드시 추상 클래스 (abstract 필수)
  • 추상 클래스는 개체를 만들 수 없음 (인스턴스화 시 컴파일 오류) — 단 생성자는 가질 수 있고 자식이 super()로 호출
  • 역은 성립 안 함: 추상 메서드가 없어도 abstract 키워드로 추상 클래스 지정 가능 (개체 생성을 막는 실익)
  • 구체 클래스가 추상 클래스를 상속하면 추상 메서드를 전부 오버라이딩해야 함 (아니면 컴파일 오류, 또는 자식도 abstract)
  • 클래스 다이어그램에서 추상 클래스·추상 메서드는 이탤릭으로 표기

출처: https://pocu-site.pages.dev/pocu-note/COMP2500/009-abstract-method-class/009-006-concrete-vs-abstract-class/