Java - extends, implements, abstract class (간단한 특징과 차이점)

 

extends VS implements

  extends implements
구현 방식 클래스간 상속관계 구현 클래스가 가져야할 기능을 정의한 인터페이스 구현
기능 사용 상속된 클래스의 모든 기능
+ 추가적 필요 기능
인터페이스에서 정의한 모든 기능
기능 구현 추가적 필요로 하는 기능 구현 가능 인터페이스에서 정의한 모든 기능 반드시 구현
  • 결론
    • extends : 클래스 상속할 때
    • implements : 인터페이스 가져올 때

abstract class VS implements

  abstract class implements
공통점 객체 생성 불가
다양성 구현
메서드는 정의만 해두고 하위 클래스에서 자세히 기능 구현
기능 구현 추상 클래스에서 정의한
추상 클래스의 모든 기능
인터페이스에서 정의한 모든 기능
특징 일반적으로 추상 메서드 포함
하위 클래스에서 구현하도록 강제
extends 키워드 사용
추상 메서드, 상수 필드, 디폴트 메서드 기능 제공
다른점 추상 메서드 외 다른 메서드는 구현하지 않아도  모든 기능 사용 가능 인터페이스에서 정의한 모든 기능 반드시 구현하여야만 모든 기능 사용 가능
  • 결론
    • 상속과 인터페이스의 다양성 구현 용도
    • 둘 다 직접 구현해야 함