새소식

Java/제대로 파는 자바

[제대로 파는 자바 (Java)-by 얄코] 인터페이스

  • -

해당 게시물은 [제대로 파는 자바 (Java) - by 얄코]를 수강한 내용을 바탕으로 작성하였습니다.

 

 

 

 

 

추상 클래스와의 차이

🔴  : 추상 클래스 / 🔷  : 인터페이스

  • 🔴 포유류
    • 북극곰 - 🔷  사냥, 🔷  수영
    • 날다람쥐 - 🔷  비행
  • 🔴 파충류
    • 거북 - 🔷  수영
    • 날도마뱀 - 🔷  사냥, 🔷  수영, 🔷  비행
  • 🔴 조류
    • 독수리 - 🔷  사냥, 🔷  비행
    • 펭귄 - 🔷  사냥, 🔷  수영

 

 

 

 

  추상 클래스 인터페이스
기본 개념 물려 받는 것 (혈통/가문/계열) 장착하는 것 (학위/자격증)
다중 적용 불가 (모회사는 하나 뿐) 가능 (학위는 여럿 딸 수 있음)
상속관계에 의한 제한 있음 없음
생성자 가짐 가지지 않음
메소드 구상, 추상 모두 가능 추상 메소드 (abstract 안 붙여도 됨), default 구상 메소드, 클래스 메소드
필드 모두 가능 상수만 가능 (final 명시 불필요)
적용 연산자 extends implements

 

 

 

 

 

추상클래스

 

 

 

 

인터페이스

  • 인터페이스는 다수 적용할 수 있음 확인
  • 필드는 public static final
    • 명시할 필요 없음
    • 초기화 필수 (생성자가 없으므로)
  • 메소드는 public abstract
    • 명시할 필요 없음
    • 메소드는 적용 클래스에서 구현 필수
  • 인터페이스 적용 클래스 작성시 IDE 안내 이용
    • 메서드 구현
  • 나머지 동물들 (날다람쥐, 거북, 펭귄) 들도 구현해보기
    • 이후 강에서 사용할 것!

 

 

Main

⭐ 다음 섹션의 익명 클래스 강에서 유용한 활용예 배울 것

 

 

 

 

 

 

 

 

 

자바8에 추가된 기능들

  • 클래스 메소드
  • default 구상 메소드

💡 default 로 구상 메소드를 넣을 수 있도록 한 이유

  • 사용되던 인터페이스에 새로운 기능을 추가해야 한다면?
    • 새로운 자바 버전의 라이브러리 인터페이스에 새 기능이 추가되어야 한다면?
    • 이를 적용하여 사용하던 클래스가 매우 많을 경우…
  • 해당 인터페이스의 하위 클래스들을 일일이 수정하지 않아도 되도록
    • 하위호환성
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.