#인터페이스
#인터페이스구현
#인터페이스란무엇인가?
#인터페이스에선언된변수는?
#인터페이스와다형성
#상수
#디폴트메서드
#디폴트메서드 재정의 하기
#static메서드
#private메서드
동일한 목적 하에 동일한 기능을 수행하게 강제하는 것이 인터페이스의 역할이자 개념
자바의 다형성을 극대화하여 개발 코드 수정을 줄이고 프로그램 유지보수성을 높이기 위해 인터페이스를 사용한다
인터페이스는 interface
키워드를 통해 선언할 수 있으며 implements
키워드를 통해 일반 클래스에서 인터페이스를 구현할 수 있다
public interface 인터페이스명 {
//상수
타입 상수명 = 값; -> 인터페이서에서 값을 지정. 바꾸지 말고 제공한 값만 참고할 것 (절대적)
//추상 메소드
타입 메소드명(매개변수, ... ); -> 가이드만 준다. 추상 메소드를 오버라이팅해서 재구현할 것 (강제적)
//디폴트 메소드
default 타입 메소드명(매개변수, ... ){ -> 인터페이스에서 기본적으로 제공. 수정 가능 (선택적)
//구현부
}
//정적 메소드
static 타입 메소드명(매개변수) { -> 인터페이스에서 제공해 주는 것으로 무조건 사용해야 함 (절대적)
//구현부
}
}
절대적 - 변경하면 안 된다
강제적 - 인터페이스를 implements
하지 않으면 피할수는 있기에 강제적이라 표현
interface IFoo{
public static final int MEMBER_VAR = 10; // (상수는 대문자와 '_'조합)
// public static final 생략 가능
public abstract void methodA(int param); // public abstract 생략가능
void methodB(int param); // public abstract
}
class Foo implements IFoo{
@Override
public void methodA(int param) {
System.out.println(param);
}
@Override
public void methodB(int param) {
System.out.println(param);
}
}
썸네일: oneook