Spring

자바 Extends, Implements 차이점

Carlos._. 2023. 3. 17.
반응형

 

먼저 상속에 대한 정의부터 알고 넘어가겠습니다.

상속이란?

 

  • 상자 하나하나는 모두 객체이고, 자바용어로는 class입니다.
  • 이러한 계층을 표현하기 위해 만들어진 것이 바로 상속입니다.
  • 하위 객체는 상위 객체(부모)의 특징을 물려받습니다.

 

메서드 or 변수를 ‘구현’하는가 그대로 ‘사용’하는가에 따라 상속의 형태가 나뉩니다.

 

  1. extends
    • 부모에서 선언 / 정의를 모두 하며 자식은 메서드와 변수를 그대로 사용할 수 있습니다.
  2. implements ( interface 구현 )
    • 부모 객체는 선언만 하며 정의(내용)는 자식에서 오버라이딩(재정의) 하여 사용하게 됩니다.
    • java에서 다중상속을 대신해 줍니다.
  3. abstract
    • extends와 interface의 혼합으로, extends 하되 몇 개는 추상 메서드로 구현되어 있습니다.

 

 

정리


  1. extends는 일반 클래스와 abstract클래스 상속에 사용되고, implement는 interface상속에 사용됩니다.
  2. class가 class를 상속받을 땐 extends를 사용하고, interface가 interface를 상속받을 땐 extends를 사용합니다.
  3. class가 interface를 사용할 땐 implements를 써야 합니다.
  4. interface가 class를 사용할 땐 implements를 쓸 수 없습니다.
  5. extends는 클래스 한 개만 상속받을 수 있습니다.
  6. extends 자식 클래스는 부모 클래스의 기능을 사용합니다.
  7. implements는 여러 개 사용 가능합니다. ( 다중상속 )
  8. implements는 설계 목적으로 구현 가능합니다. ( 추상화 )
  9. implements 한 클래스는 implements의 내용을 다 사용해야 합니다.

 

 

 

[ 참고 자료 ]

728x90
반응형

댓글