반응형

인터페이스 vs 추상클래스 비교

인터페이스 (implements) : 인터페이스에 정의된 메서드를 각 클래스 목적에 맞게 기능을 구현

추상클래스 (extends) : 자신의 기능들을 하위 클래스로 확장

  추상 클래스 인터페이스
사용 키워드 abstract interface
사용 가능 변수 제한 없음 static final (상수)
사용 가능 접근 제어자 제한 없음 (public, private, protected, default) public
사용 가능 메소드 제한 없음 abstract method, default method, static method, private method
상속 키워드 extends implements
다중 상속 가능 여부 불가능 가능 (클래스에 다중 구현, 인터페이스 끼리 다중 상속)
공통점 1. 추상 메소드를 가지고 있어야한다.
2. 인스턴스화 할 수 없다. (new 생성자 사용 x)
3. 인터페이스 혹은 추상 클래스를 상속받아 구현한 구현체의 인스턴스를 사용해야 한다.
4. 인터페이스와 추상클래스를 구현, 상속한 클래스는 추상 메소드를 반드시 구현하여야한다.

 

사용 시기 및 목적

추상클래스 : 상속 관계 시, 부모나 조상클래스를 상속하는데 기능까지 같은 경우 추상클래스 사용

                     (상속, 확장하여 사용)

인터페이스 : 상속 관계 시, 부모나 조상클래스를 상속하는데 다른 기능이 필요할 경우 인터페이스 사용

                     (동일한 사용방법과 동작을 보장하기 위해 사용)

반응형

'개발새발 > Java' 카테고리의 다른 글

Java의 메모리 영역  (0) 2024.05.26

+ Recent posts