Java

인터페이스와 추상 클래스의 차이

KJihun 2023. 5. 25. 19:09
728x90

인터페이스와 추상화 모두 메서드를 재정의(Override)하여 사용하기에 조금 헷갈릴 수 있다.

하지만 전혀다른것이며 확실한 차이가 있다.

 

인터페이스

 

클래스가 인스턴스의 청사진이라면, 인터페이스는 클래스의 청사진이다.

인터페이스는 클래스의 메서드들의 목록과 동작을 정의 하며

인터페이스를 구현한 클래스는 디폴트 메서드를 제외한 인터페이스의 모든 메서드를 재정의해야 한다.

 

추상 클래스

 

추상 클래스는 추상화를 통해 부모 클래스는 공통적인 속성을, 자식 클래스는 각자의 속성을 추가하여 사용한다.

이를 통해 코드의 중복을 줄이고 유지보수성을 높일 수 있다.

재정의하여 사용할 메서드는 추상 메서드(Abstract Method)로 구현하며 반드시 구현해야 한다.

 

 

정리하자면, 

인터페이스는 클래스 간의 계약을 정의하고 다형성을 지원하는 역할에 중점을 두며

추상 클래스는 공통 기능을 부모 클래스로 정의하고, 하위 클래스들이 이를 상속받아 구체화하는 것이 목적이다.


'Java' 카테고리의 다른 글

제네릭(Generic)의 개념  (0) 2023.05.26
default 메서드, static 메서드  (0) 2023.05.26
인터페이스  (0) 2023.05.25
추상 클래스  (0) 2023.05.25
super와 super()  (0) 2023.05.24