[SECTION12. 추상 클래스와 인터페이스]
● 추상 클래스 = 완성되지 않은 클래스
● 추상 메소드 = 몸체({})가 없는 메소드


● 추상 클래스 핵심
new Animal() 불가)● 인터페이스 = 클래스가 반드시 지켜야 할 규칙(약속)만 모아둔 것.


● 인터페이스 핵심
객체 생성 ❌
다중 구현 가능
필드는 자동으로 public static final
메소드는 자동으로 public abstract
인터페이스에서 default 사용하여 추상 메소드 사용가능
but. 추상 클래스와 다른점이 없어지기 때문에 미사용
| 구분 | 추상 클래스 | 인터페이스 |
|---|---|---|
| 상속 | 단일 상속 | 다중 구현 |
| 메소드 | 일반 + 추상 | 추상 메소드 중심 |
| 필드 | 가능 | 상수만 가능 |
| 생성자 | 있음 | 없음 |
| 목적 | 공통 기능 + 규칙 | 규칙(역할) 정의 |