본문 바로가기
JAVA

추상 클래스와 인터페이스

by orioncsy 2023. 3. 12.

추상 클래스와 인터페이스

Abstract Class

개념

  • 하나 이상의 추상 메서드를 포함하고 있는 클래스
  • 상속을 통해 하위 클래스가 구현하도록 강제하는 클래스
  • class 앞에 abstract를 선언하여 구현

특징

  • 다중 상속이 불가능
  • new 키워드를 통해 직접 객체 생성 불가
  • 인터페이스와 다르게 final, static이 아닌 필드를 가질 수 있고 접근제어자 모두 사용 가능

Interface

  • 상수(static final)와 추상 메서드(abstract)의 집합

특징

  • 다중 상속이 가능
  • 추상 클래스와 다르게 일반 메서드를 포함할 수 없다.
  • 모든 메서드는 public abstract, 모든 멤버 변수는 public static final로 선언해야 한다.

추상 클래스와 인터페이스 공통점과 차이점

공통점

  • 메서드의 선언만 있고 구현체는 존재하지 않는다.

차이점

  • 추상 클래스는 extends, 인터페이스는 implements를 통해 상속
  • 추상 클래스는 다중 상속 불가, 인터페이스는 가능
  • 추상 클래스는 일반 메서드, 변수, 생성자, 추상 메서드를 가질 수 있지만, 인터페이스는 상수와 추상 메서드만 가능
  • 추상 클래스는 부모 클래스가 가진 기능들을 구현해야 하는 경우에 사용
  • 인터페이스는 다른 부모 클래스를 상속하더라도 같은 기능이 필요한 경우에 사용

Reference

https://wildeveloperetrain.tistory.com/112

'JAVA' 카테고리의 다른 글

JVM  (0) 2023.03.15
Overriding & Overloading  (0) 2023.03.14
접근 제어자  (0) 2023.03.10
JDK 변화  (0) 2023.03.09
Garbage Collector  (0) 2023.03.05