자바 추상 클래스와 인터페이스
포스트
취소

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

추상클래스와 인터페이스

추상클래스

1
2
3
4
5
6
7
- 객체 생성이 불가능하고 추상 메소드를 선언할 수 있는 점을 제외하면
 일반 클래스가 하는 대부분의 기능을 수행할 수 있다
- 일반 클래스와 같이 단일 상속만 가능하다
- 관련성이 높은 클래스 간 코드를 공유하고 싶은 경우
- 관련성이 높기 때문에 상속 받는 클래스가 필수로 가질 행동을 지정
- 클래스 스스로 기능을 수행한다면 추상 클래스는 필요 없다
- 주 목적은, 상속받은 자식 클래스의 기능 확장에 있다

##인터페이스

1
2
3
4
5
6
7
- 자바 버전이 올라가면서, 기존엔 상수 필드와 추상 메소드만 제공했지만
디폴트 메소드와 정적 메소드를 추가할 수 있게 되었다
- 일반 클래스와 달리 다중 상속이 가능하다
- 인터페이스도 결국 클래스의 일종이다
- 관련성이 없는 클래스들이 기능만을 구현하여 사용
- 특정 객체의 행동을 명시하고 싶은데, 내부 구현에 대해 신경쓰지 않고 싶을때
- 결합도를 느슨하게 만들어주는 좋은 도구다
  • 물론 인터페이스가 더 중요하고 자주 쓰이지만 그렇다고 모든 것을 인터페이스로 처리하려 한다면, 공통적으로 필요한 기능도 모든 클래스에서 재정의해야하는 번거로움이 생길 수 있다

참고

  • is a kind of (추상 클래스) 같은 종류의 하위 클래스를 만든다
  • be able to (인터페이스) 사용 방법이 동일한 클래스를 만든다
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.