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