20230717

Moon-Tree·2023년 7월 17일
0

◆ 추상 클래스(abstract class)

  1. 클래스 내 abstract로 정의된 경우를 말합니다.
  2. 직접 객체 생성이 불가능합니다.
    1) 대신 하위 클래스에서 추상 클래스를 상속받아야만 인스턴스를 생성할 수 있습니다.
  3. 추상 메서드를 가질 수 있습니다.
    1) 추상 클래스가 추상 메서드를 가지면 하위 클래스에서는 해당 메서드를 반드시 구현해야 합니다.
    2) 이를 통해 하위 클래스들이 일관된 동작을 보장할 수 있습니다.
  • 상속을 위한 상위 클래스 입니다.
  • 추상 클래스는 상속 받는 클래스들의 공통적인 특징과 동작을 제공하며, 기능 확장을 위해 사용합니다.

◆ 인터페이스(interface)

  • 클래스가 가져야 하는 메서드의 형식을 정의하는 역할을 합니다.
    인터페이스는 클래스와는 달리 다중 상속을 지원하며, 클래스가 여러 개의 인터페이스를 동시에 구현할 수 있습니다.
  • java 7버전까지 모든 메서드가 추상 메소드로만 이루어져 있어야 합니다. 그러나, java 8버전부터는 Lambda 표현식을 활용해서 인터페이스에 default 메소드와 static 메소드를 추가할 수 있게 되었습니다.
    • default 메소드는 인터페이스에 기본적인 구현을 제공하는 메소드로, 구현 클래스에서 이를 재정의하지 않아도 되며 선택적으로 사용할 수 있습니다.
    • static 메소드는 인터페이스 수준에서 정적 메소드를 제공하는 것으로, 인터페이스명을 통해 직접 호출할 수 있습니다.
  • 생성자를 가질 수 없습니다.

  • 추상 클래스는 extents로 한 개만 상속이 가능하고, 인터페이스는 implement와 콤마로 여러 개 상속이 가능합니다.
    - 추상 클래스는 다중상속이 불가능 하지만, 인터페이스는 다중상속이 가능합니다.
profile
Backend Developer

0개의 댓글