Abstract Class vs Interface
Abstract Class vs Interface
Abstract Class vs Interface
- 추상 클래스와 인터페이스는 상속받는 / 구현하는 클래스가 추상 메소드를 구현하도록 강제하는 서로 비슷한 부분이 존재
- 그러나 분명한 차이가 있음
구분 | 추상 클래스 | 인터페이스 |
---|---|---|
정의 | 클래스 내 추상 메소드가 하나 이상 | 모든 메소드가 추상 메소드 |
목적 | 상위 클래스를 상속받아서 “확장” | 함수 틀만 있는 것을 “구현” |
다중 상속 | 클래스이므로 불가능 | 인터페이스는 가능 |
상속 대상 | 상속받은 클래스들이 동일한 동작 보장 X | 구현한 객체들은 동일하게 동작 |
기능 재사용 | 상위 클래스의 기능을 가져와 사용 가능 | 모두 직접 오버라이딩 해야 함 |
가질 수 있는 것 | 변수 / 상수, 생성자, 일반/추상 메소드 | 상수, 추상 메소드 |
상속 키워드 | extends | implements |
References
- https://brunch.co.kr/@kd4/6
- https://myjamong.tistory.com/150
- https://wildeveloperetrain.tistory.com/112
- https://devlog-wjdrbs96.tistory.com/370