참고 포스팅
- 출처: https://inpa.tistory.com/entry/JAVA-☕-인터페이스-vs-추상클래스-차이점-완벽-이해하기#추상클래스의_다형성_이용_설계 [Inpa Dev 👨💻:티스토리]
추상 클래스와 인터페이스의 특징을 비교하여 테이블로 나타냈습니다.
추상 클래스 | 인터페이스 | |
---|---|---|
사용 키워드 | abstract | interface |
사용 가능 변수 | 제한 없음 | static final (상수) |
사용 가능 접근 제어자 | 제한 없음 (public, private, protected, default) | public |
사용 가능 메소드 | 제한 없음 | abstract method, default method, static method private method |
상속 키워드 | extends | implements |
다중 상속 가능 여부 | 불가능 | 가능 |
공통점 | 1. 추상 메소드를 가지고 있어야 한다. 2. 인스턴스화 할 수 없다 (new 생성자 사용 불가) 3. 인터페이스 혹은 추상 클래스를 상속받아 구현한 구현체의 인스턴스를 사용해야 한다. 4. 인터페이스와 추상클래스를 구현, 상속한 클래스는 추상 메소드를 반드시 구현해야 한다. |
---|
정리하면, 추상클래스와 인터페이스 모두 추상 메서드를 통해 상속/구현 시 강제 구현하도록 해줍니다.
하지만, 상황에 따라서 추상클래스를 사용하는 경우와 인터페이스를 사용하는 경우가 달라집니다.