[이것이 자바다] 08. 인터페이스

SeonJin·2023년 8월 29일
0

Java

목록 보기
6/11
post-thumbnail
post-custom-banner

📚 이것이 자바다 [개정판]


sec02. 인터페이스 선언

  • 인터페이스는 두 객체를 연결하는 역할을 한다
  • implements
    • 해당 클래스가 인터페이스를 통해 사용할 수 있다는 뜻
    • 인터페이스의 추상 메소드를 정의한 메소드가 있다는 뜻
  • 변수의 타입으로 사용할 수 있고, 기본값 null으로 설정된다
  • 사용하려면 new 생성자를 이용하여 변수에 구현 객체를 대입
public class B interface 인터페이스명 {
// public 상수 필드
// public 추상 메소드, 디폴트 메소드, 정적 메소드
// private 메소드, 정적 메소드
}


sec03~07. 인터페이스 멤버

  1. public static final 타입 상수명 = 값; (상수 필드)
  2. public abstract 리턴타입 메소드명(매개변수); (추상 메소드)
    1. 메소드 선언부만 작성
  3. default 리턴타입 메소드명(매개변수);{} (디폴트 메소드)
    1. 완전한 실행 코드를 가진 디폴트 메서드 선언 가능
    2. 상수 필드를 읽거나 추상 메소드를 호출하는 코드 작성
    • 예시
      default void setMete(boolean mute) {
      		if(mute) {
      			System.out.println("무음처리");
      			setVolume(MAX_VOLUME); // 추상메소드 호출
      		} else {
      			System.out.println("무음해제");
      		}
      	}
  4. public|private static 리턴타입 메소드명(매개변수){} (정적 메소드)
    1. 구현 객체가 없이 인터페이스만으로 호출할 수 있다
    2. 중괄호 안에는 상수 필드만 작성할 수 있다
  5. private (private 메소드, private 정적 메소드)
    1. private 메소드 : 디폴트 메소드 안에서만 호출 가능
    2. private 정적 메소드 : 디폴트, 정적 메소드 안에서 호출 가능

sec08. 다중 인터페이스 구현

  • 구현클래스명 implements 인터페이스A, 인터페이스B{}
  • 구현 객체는 여러 개의 인터페이스를 implements 할 수 있다

sec09. 인터페이스 상속

  • interface 자식인터페이스 extends 부모인터페이스1, 2, ..{}
  • 인터페이스도 다른 인터페이스를 상속할 수 있다
  • 클래스와 달리 다중 상속을 허용한다
  • 자식 인터페이스의 구현 클래스는 부모 인터페이스의 모든 추상 메소드를 재정의 해야 한다

sec10. 타입 변환

  • 자동 타입 변환
    • 인터페이스 변수 = 구현객체;
    • 부모 클래스가 인터페이스를 구현하고 있다면 자식 클래스도 인터페이스 타입으로 자동 타입 변환 될 수 있다
  • 강제 타입 변환
    • 구현클래스 변수 = (구현클래스) 인터페이스변수;

sec11. 다형성

  • 메소드 재정의 + 자동 타입 변환 → 다형성
profile
study notebook
post-custom-banner

0개의 댓글