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