인터페이스는 실제로 기능은 없지만 이렇게 만들것이다 라고 정의해 놓은 것이다
인터페이스에서 정의한 변수는 상수가 된다
public interface TV {
public int MAX_VOLUME = 100; // 상수(변하지 않는다)
public int MIN_VOLUME = 0; // 상수(변하지 않는다)
public void turnOn(int volume);
public void changeChannel(int channel);
}
위의 인터페이스 TV를 사용해보겠다 이클립스에서 클래스를 생성할 때 인터페이스를 넣어주면 자동으로 모든 함수가 생성된다.
동일한 인터페이스를 구현한다는 것은 클래스의 사용법이 똑같다는 것을 알아야 한다
public class LedTV implements TV {
public void turnOn() {}
public void changeChannel() {}
}
main {
TV tv = new LedTV();
tv.turnOn()
tv.changeChannel()
}
인터페이스는 선언만 할 수 있지 구현은 못했다 하지만 default 메소드를 사용하면 만들 수 있다
또 Static 메서드도 있는데 Static 메서드는 사용할 때 인터페이스명.메서드 방법으로 사용할 수 있다
publir interface Calculator {
public int plus(int i, int j)
Default 메서드
default int exec(int i, int j) {
return i + j
}
// Static 메서드
public static int exec2(int i, int j) {
return i + j
}
}
main {
Calculator cal = new myCal // 예전에 만든거
int plus = cal.exec(1,2)
System.out.println(plus) // 3
Calculator.exec2(1,2) // static 메서드
}