Interface 예습

허니몬·2023년 9월 6일
0

예습

목록 보기
1/1
post-thumbnail

인터페이스

일종의 추상클래스이지만 클래스라 부르지 않음
->인터페이스라 칭함

다른 클래스에서 구현(상속) 방법
: public class 클래스명 implements 인터페이스 명 {
멤버 선언(상수, 추상메소드)
}

한 클래스에서 부모클래스 상속과 인터페이스 구현을 동시에 받았고 부모클래스의 메소드 이름과 인터페이스의 메소드 이름이 같다면 자식 클래스에서는 상속받은 메소드를 우선적으로 사용
상속 > 구현

인터패이스의 멤버
상수 : 변수를 선언시
public static final 이 자동 생성되어 상수화
추상메소드 : 메소드 생성시
public abstract 자동생성

즉, 인터페이스를 구현(상속) 받은
클래스는 반드시 메소드를 재정의 해야함
-> 추상클래스와 비슷함

하지만 인터페이스는 클래스의 상속과 다르게
한 자식 클래스가 여러 인터페이스를 구현(상속) 받을 수 있음
-> 자바는 클래스의 다중 상속이 불가능 함
-> 이를 해결하기 위해 인터페이스를 사용
-> 한 클래스에서 여러 인터페이서 구현O

인터페이스 사용 이유

  • 여러 클래스에서 선언할 멤버들(상수)의 일관성
  • 마커 인터페이스에 의한 클래스들의 그룹화
  • 다중상속 문제 해결

Adapter class - interface
어댑터 클래스는 추상클래스임
(클래스명 뒤에 Adapter를 붙여 목적성을 띄우기)
즉, 멤버로 구현된(완성된) 메소드와 미구현된 메소드를 가질 수 있음

  • 구현된 메소드 :
    public void method1(){}
  • 미구현된 메소드 :
    public abstract void method2();

이런 식으로 어뎁터 클래스에서 인터페이스를 상속받아 강제성을 없애고 싶은 메소드를 오버라이딩을 한다

다른 자식 클래스에서 어댑터 클래스를 상속 받으면 강제성이 제거된 메소드는 재정의 없이 사용하고 싶은 메소드만 재정의 하여 쓸 수 있음

마커 인터페이스

  • 클래스 그룹화
  • 멤버 선언 안함
profile
Fintech

0개의 댓글