자바 추상클래스와 인터페이스

wisdom·2022년 7월 19일
0

OOP

  • 장점
    • 관리
    • 재사용
    • 확장

추상클래스와 인터페이스의 차이와 존재 이유가 뭘까

추상클래스

  • 정의

    • 추상메서드가 하나 이상 포함되거나
    • abstract로 정의된 경우

      추상 메서드는 내부가 아직 구현되지 않은 abstract로 정의된 메서드를 말한다. -> 아직 구체적으로 표현되지 않은 메서드

  • 형태

    • "일반변수(가능)+일반메서드(가능)+추상메서드"
  • 어떤 상황에서 쓸까?

    • 같은 종류나 행동들을 구현할 게 많을 때 쓰고
    • 당연하지만 추상메소드를 상속받는 자식클래스에서 구현할 때 상속에 대한 계층 구조를 명확하게 표현할 때 추상클래스를 이용하면 효과적이다.
    • new 클래스명으로 객체를 만들 수 없다.
      • 해당 클래스는 완벽하게 정의되지 않았기 때문

인터페이스

  • 정의
    • 모든 메서드가 추상메서드
  • 형태
    • "상수"+"추상메서드"
  • 어떤 상황에서 쓸까?
    • 일반 변수들과 일반 메서드들도 쓸 수 있고 아직 구현하지 않아도될 메서드는 그냥 내버려 둘 수 있어 상황에 따라 편리하다.
    • 인터페이스는 디자인을 구성하는 요소들이 자주 바뀔 때 쓰면 유용하고
    • 당연하지만 메서드 형태만 서로 공유해서 구현되는 상황일 때 적합하고 클래스 전체가 아닌 메서드들만 쓰고 싶을 때 인터페이스를 이용하면 효과적이다.

공통점

  • 추상 클래스와 인터페이스는 상속받는 클래스 혹은 구현받는 인터페이스 안에 있는 추상 메소드를 구현하도록 한다.

차이점- 각각 존재 목적이 다름

  • 추상클래스
    • 궁극적인 목적이 상속하기 위함
    • 그 추상 클래스를 상속받아서 기능을 이용하고, 확장시키는 데 있다.
  • 인터페이스
    • 특정 인터페이스를 구현한 객체들에 대해서 동일한 동작을 약속하기 위해 존재한다.
    • 인터페이스는 함수의 껍데기만 있는데, 그 이유는 그 함수의 구현을 하기 위해서다.

회고

profile
문제를 정의하고, 문제를 해결하는

0개의 댓글