티스토리 뷰

0. inferface

0.1 inferface

:: 추상화 + 다형성을 위해 사용

  • 인터페이스 추상화
    :: 가상 필요한 요소를 제외하고 모두 은닉 
        => 인터페이스(interface) :: 구현체는 가리고 메서드만 노출
        => 추상 클래스(abstact class) :: 일부 구현체는 가리고 필요한 필드, 메서드만 노출

1.abstract class VS inferface

  abstract class inferface
목적 - 클래스 간의 연관 관계 구축
- 하위로 확장하며 구현
- 같은 동작을 함을 보장
- 같은 이름의 동작 모음?
사용 가능한 변수(필드) 모두 사용 가능 static final(상수)만 가능
사용 가능한 접근 제어자 public만 가능
사용 가능 메서드 - abstract method,
- default method,
- static method,
- private method
상속 키워드 extends implements
다중 상속 X O
공통점 1. 추상 메서드를 가짐
2, 인스턴스화 x
3. 인터페이스 or 추상 클래스를 상속 받아 구현한 구현체의 인스턴스를 사용
4. 최하단 자식 메서드의 경우, 반드시 추상 메서드를 구현해야 함

2. 사용하는 경우

2.1 추상 클래스를 사용하는 경우

  1. 상속 받는 클래스들이 공통으로 가지는 매소드와 필드가 많음
    => 중복 멤버 통합 시,
  2. 멤퍼에 public 이외의 접근자 선언이 필요한 경우
  3. 요구사항 + 구현 세부 정보의 일부 기능만 지정 시
  4. 하위 클래스가 오버라이드하여 재정의하는 기능들을 공유하기 위한 상속 개념을 사용 시,
  5. 명확한 계층 구조가 필요할 경우 - 연관 관계를 명확히

2.2 인터페이스를 사용하는 경우

  1. 애플리케이션의 기능 정의 시, 그 구현 방식이나 대상에 대한 추상화가 필요할 경우
  2. 관련성 없는 클래스들을 묶을 때(형제 관계)
  3. 다중 상속을 통한 추상화 필요 시 - 마커 인터페이스로 사용
  4. 클래스와 별도로 구현 객체가 같은 동작을 한다는 것을 보장해야 할 경우

2.3 추상 클래스 + 인터페이스

  1. 인터페이스의 추상메서드의 일부만 구현 후, 넘겨줄 경우
  2. 인터페이스에서 정의하지 못하는 중복된 필드 값을 부여해야할 경우

참조

ASAC 수업자료

 

출처: https://inpa.tistory.com/entry/JAVA-☕-인터페이스-vs-추상클래스-차이점-완벽-이해하기 

 

☕ 인터페이스 vs 추상클래스 용도 차이점 - 완벽 이해

인터페이스 vs 추상클래스 비교 이 글을 찾아보는 독자분들은 아마도 이미 인터페이스와 추상클래스 개념을 학습한 뒤에 이 둘에 대하여 차이의 모호함 때문에 방문 했겠지만, 그래도 다시한번

inpa.tistory.com

-> 정말 큰 도움이 되었다..

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함