상세 컨텐츠

본문 제목

JAVA 10-1. 추상클래스와 인터페이스 비교(공통점/차이점)

Backend/JAVA-자바

by 사랑짱 2021. 6. 23. 11:40

본문

 

앞서 다형성과 가장 밀접한 상속에 대한 개념을 다루면서

추상클래스와 인터페이스에 대해 정리해보았다.

 

그렇다면 추상클래스와 인터페이스의 공통점과 차이점은 무엇일까?

 

 

◆ 추상클래스 - 인터페이스의 관계

- 추상클래스와 인터페이스는 상호호환하는 관계

 

 

◆ 추상클래스 - 인터페이스의 공통점

- 추상메소드라는 교집합으로 규격을 정의

- 상속과 오버라이딩이라는 기능을 통해 다형성을 구현

- 스스로 객체를 생성할 수 없으며 extends, implements 한 자식/구현객체들만 생성 가능

 

※ 인터페이스와 달리, 추상클래스는 생성자가 있으므로

   자식객체의 생성과 함께 부모객체도 생성된다는 차이가 존재

 

 

◆ 추상클래스 - 인터페이스의 차이점

 

1. 추상클래스

- 구성멤버 : 필드, 생성자, 메소드 + 추상메소드(규격과 상관없는 필드와 메소드를 정의)

- 단일상속(why? 구현되어 있는 메소드 간 충돌 발생)

- 상속받은 기능을 확장하여 구체화

 

2. 인터페이스

- 구성멤버 : 상수, 추상메소드, 디폴트메소드, 정적메소드

- 다중상속(why? 구현되어 있지 않기 때문에 상관없음)

- 구현객체가 동일하게 동작하는 것을 보장

 

 진짜 규격다운 규격은 인터페이스이다!!!

관련글 더보기