728x90
추상클래스(abstract class)와 인터페이스(interface)의 공통점과 차이점에 대하여 정리해보았습니다.
[공통점]
인터페이스(Interface)와 추상클래스(abstract class)는 넓게 보면 하위 클래스에서 상속(implements)을 받거나 구현(implements)을 통해서 추상 메소드(abstract method)를 구현하는 것입니다.
또한 인터페이스와 추상클래스 둘다 인스턴스를 선언을 하지 못합니다.
하지만 추상 메소드를 구현한다는 공통점 이외에는 목적이 완전히 다릅니다. 하나씩 살펴보도록 하겠습니다.
[차이점]
[abstract class]
- 기본적으로 추상클래스는 "클래스" 입니다.
- 추상 메소드 및 일반 메소드와 멤버 변수를 모두 가지고 있습니다.
- 하위 클래스에서 상속을 받아 기능을 확장시키는 것이 추상 클래스의 목표입니다.
- 즉, 상속을 통해서 자손 클래스에서 완성을 유도하므로 "미완성 설계도"로 말할 수 있습니다.
- 추상클래스를 extends로 상속 받아서 사용합니다.
[interface]
- 인터페이스는 "클래스가 아닙니다".
- 인터페이스는 상속 개념이 아닌, 동일한 동작을 위한 구현을 강제화 하는 것 입니다.
- 인터페이스 간에 상속도 가능한데 인터페이스간의 상속은 extends를 사용한다
public interface SuperInterface{
public void func();
}
public interface SubInterface extends SuperInterface{
public void subFunc();
}'프로그래밍 > 자바(Java)' 카테고리의 다른 글
| [ 자바 / JAVA ] 함수형 프로그래밍과 람다식(Lambda Expression) (0) | 2021.07.26 |
|---|---|
| [ 자바 / JAVA ] Wrapper Class(Wrapper 클래스) (0) | 2021.07.26 |
| [ 자바 / JAVA ] 인터페이스(interface) (0) | 2021.07.23 |
| [ 자바/ JAVA ] 추상클래스(abstract class) (0) | 2021.07.22 |
| [ 자바 / JAVA ] String, StringBuilder, StringBuffer 클래스 (0) | 2021.07.22 |