주제
인터페이스와 추상클래스의 차이
목차
내용
Define
ㅤ | 추상화 | 인터페이스 |
정의 | 미완성 설계도 | 밑그림만 있는 설계도 [기본 설계도] - 행위기반 |
키워드 | abstract . extends | interface , implements, public static final 생략 가능, abstract 생략 가능,default method 사용 |
다중 상속 여부 | 불가능 | 가능 |
관계 | Is Kind Of - 상하관계 | Is Able To |
ㅤ | ㅤ | ㅤ |
공통점
- NEW 연산을 통해 객체화 할 수 없다. [인스턴스화 불가능]
- 추상 메소드를 구현하도록 강제할 수 있다.
차이
추상 클래스는 상속으로써 재사용과 확장이 주된 목적이다.
- 하위 클래스들의 모든 공통 속성은 ROOT 클래스에 존재한다.
- 보통 상속은 상위 타입, 하위 타입으로 (슈퍼-서브) 나뉘운다.
- 그래서 상속은 위로 갈 수록 추상화 되어있고, 아래로 갈 수록 구체화 되었다고 할 수 있다.
객체지향에서의 상속은
- 특성을 재사용하여 확장하는 것이다.
- Is Kind Of 관계를 만족해야한다.
is kind of 이유 예시
- 참새는 조류다
- 펭귄은 동물이다.
- 부적절한 예)
- 가족관계
- 아빠는 할아버지다.?
- 나는 아빠다?

인터페이스는 행위 중심적으로 공통 행위를 추출하여 동작의 동일성을 보장하는 것이 주된 목적이다.
- 인터페이스의 구현 클래스
is able to
라고 해석할 수 있다. 즉, 무엇을 할 수 있는 이라는 행위 중심적이라고 볼 수 있다.
Serialize
직렬화 할 수 있는
Comparable
비교할 수 있는
Runable
실행 할 수 있는
결론
상위 클래스는 물려줄 특성이 풍성할 수록 좋고, 인터페이스는 구현을 강제할 메소드의 개수가 적을 수록 좋다는 결론에 도달 할 수 있다.