본문 바로가기
Java

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

by titlejjk 2023. 5. 3.

추상 클래스와 인터페이스는 모두 추상 메서더를 사용할 수 있다는 공통점이 있다. 그러나 왜 이 두가지를 나누어서 사용 할까?

 

추상클래스와 인터페이스의 차이점을 이해하려면 먼저 추상 클래스와 인터페이스의 기능을 알아봐야 한다.

추상 클래스는 클래스의 구현부 내부에 추상 매서드가 하나 이상 포함되거나 abstract로 정의된 것을 말한다.

추상화를 하면서 중복되는 클래스 멤버들을 통합 및 확장할 수 있으며, 클래스간의 연관 관계를 구축하는 것에 초점을 둔다. 추상 클래스를 상속받은 클래스(하위 클래스)는 각 성질에 맞게 Overriding하여 사용하며, new 연산자를 사용하여 객체를 생성할 수 없다.

 

반면, 인터페이스는 추상클래스와 달리 인터페이스 내부의 메서드, 필드 등은 모두 public 상태이며, abstract로 선언된 메서드들만 구현이 안 되어 있습니다. 이러한 특징으로 인터페이스는 다중 상속이 가능하며, 클래스의 상속과는 별개로 구현 가능하다. 또한 인터페이스는 객체를 생성할 수 없으며, 상속받은 자식이 구현을 반드시 해야한다. 추상 클래스와 달리, 인터페이스는 객체를 구현하는데 있어서 규격을 제공하는 역할을 한다.

 

추상 클래스는 많은 객체를 생성해야 할 때 각각의 클래스의 성질에 맞게 Overriding 하여 사용

인터페이스는 다양한 객체를 구현할 때 특정한 규격을 제공하여 구현

 

추상 클래스의 장점

  • 추상 클래스는 클래스 간의 상속 관계를 구축하는 것에 초점을 둠
  • 추상 클래스는 구현 코드를 포함할 수 있다.
  • 추상 클래스는 필요한 경우 일반 메서드를 포함할 수 있다.

인터페이스의 장점

  • 인터페이스는 클래스의 상속과는 별개로 구현
  • 인터페이스는 다중 상속이 가능
  • 인터페이스는 객체를 구현하는데 있어서 규격을 제공하는 역할을 한다.

'Java' 카테고리의 다른 글

JAVA Generic Class  (0) 2023.05.04
JAVA Interface(작성중)  (0) 2023.05.03
JAVA Inner class  (0) 2023.05.03
JAVA Extends  (0) 2023.05.02
JAVA Abstract  (0) 2023.05.02

댓글