반응형
인터페이스 vs 추상클래스 비교
인터페이스 (implements) : 인터페이스에 정의된 메서드를 각 클래스 목적에 맞게 기능을 구현
추상클래스 (extends) : 자신의 기능들을 하위 클래스로 확장
추상 클래스 | 인터페이스 | |
사용 키워드 | abstract | interface |
사용 가능 변수 | 제한 없음 | static final (상수) |
사용 가능 접근 제어자 | 제한 없음 (public, private, protected, default) | public |
사용 가능 메소드 | 제한 없음 | abstract method, default method, static method, private method |
상속 키워드 | extends | implements |
다중 상속 가능 여부 | 불가능 | 가능 (클래스에 다중 구현, 인터페이스 끼리 다중 상속) |
공통점 | 1. 추상 메소드를 가지고 있어야한다. 2. 인스턴스화 할 수 없다. (new 생성자 사용 x) 3. 인터페이스 혹은 추상 클래스를 상속받아 구현한 구현체의 인스턴스를 사용해야 한다. 4. 인터페이스와 추상클래스를 구현, 상속한 클래스는 추상 메소드를 반드시 구현하여야한다. |
사용 시기 및 목적
추상클래스 : 상속 관계 시, 부모나 조상클래스를 상속하는데 기능까지 같은 경우 추상클래스 사용
(상속, 확장하여 사용)
인터페이스 : 상속 관계 시, 부모나 조상클래스를 상속하는데 다른 기능이 필요할 경우 인터페이스 사용
(동일한 사용방법과 동작을 보장하기 위해 사용)
반응형
'개발새발 > Java' 카테고리의 다른 글
Java의 메모리 영역 (0) | 2024.05.26 |
---|