목차


<aside>

</aside>

▶︎ 인터페이스 vs 추상클래스 정리

인터페이스와 추상클래스 모두 자식 클래스에서 반드시 메서드를 구현해야 하는 공통점이 있었다. 하지만, 인터페이스의 필드는 모두 final 상수가 되듯이 차이점도 분명히 존재했다. 차이점을 알아보겠다.

먼저, 명시적인 인터페이스와 추상클래스의 차이점을 정리했다.

추상 클래스 인터페이스
키워드 abstract, extends interface, implements
필드 변수 제한 없음 static final(상수)
사용 가능한 접근제어자 제한 없음 public
다중 상속 가능 여부 불가능 가능

다음은 공통점이다.

<aside>

  1. 추상 메서드를 가지고 있어야하며, 자식 클래스에서 구현이 필요하다.

  2. 인스턴스화할 수 없다.(new 생성자 x)

  3. 자식 클래스에서 공통으로 사용할 메서드를 구현할 수 있다.

    ⇒ 인터페이스는 default 키워드를 사용하면 된다.

</aside>

▶︎ 개념적인 비교

정리한 표처럼 문법적인 차이도 있고, 뒤에서 코드로 알아볼 것이다.

그 전에 본래 개념적으로는 자식 클래스에서 부모 메서드를 확장/구현하느냐의 차이가 있다.

<aside>

▶︎ 추상 클래스의 사용처

중복 변수

인터페이스의 특징으로는 필드 변수가 final static 의 상수로만 선언되는 것이었다. 따라서, 구현한 자식 클래스에서는 해당 변수들을 수정하지 못하기 때문에 확장을 위해서는 인스턴스 변수로 새로 선언해야했다.

image.png