인터페이스(interface)

0

인터페이스?

  • 결론 : 추상 메소드의 집합 (프로그래밍 관점)
  • 핵심 : 구현된 것이 전혀 없는 설계도. 껍데기 (모든 것이 추상메소드이기 때문에, 모든 멤버가 public)

추상클래스와 인터페이스의 차이?

  • 추상클래스는 일반 클래스인데 추상메소드를 가지고 있는 것. (생성자, 변수 가짐)
  • 인터페이스는 추상메소드만 가짐. (구현된 것이 없고, 멤버변수를 가질 수 없음)
interface 인터페이스이름 {
	public static final 타입 상수이름 =;  // 상수는 가능, 무조건 final
    public abstract 메소드이름(매개변수목록);  // 추상 메소드
    // 모든 인터페이스 멤버는 public, 메소드는 전부 추상

⇒ 인터페이스는 무조건 public, abstract, final이기 때문에 코드 쓸 때 생략 가능
상수 코드에서 public static final 상수3가지 선택 or 모두 생략 가능

  • 인터페이스의 조상은 인터페이스만 가능 (Object가 최고 조상X)
  • 다중 상속! 가능 (추상메소드는 충돌해도 문제 없음 - 몸통이 없으니 충돌할 게 없음.)
    ↳ 일반적으로,
    선언부가 다르면 둘 다 상속받으면 그만인데, 선언부가 같고 내용 {} 이 다르면 어느 쪽을 상속 받을 지 결정할 수 없음

인터페이스의 구현

  • 인터페이스에 정의된 추상 메소드를 완성하는 것 (상속을 통해)
class 클래스이름 implements 인터페이스이름 {
	// 인터페이스에 정의된 추상메소드를 모두 구현해야 한다.
    }
  • implements 를 통해 구현함
  • 추상클래스는 extends를 통해 상속해서 추상메소드를 구현하고, 인터페이스는 implements로 class를 통해 구현함.

출처

  • 자바의 정석 기초편 : ch 7 - 35~37
profile
백엔드를 공부하고 있습니다.

0개의 댓글