인터페이스?
인터페이스(Interface)는 추상 메서드와 이름 상수만을 포함한다.
즉 아무것도 구현하지 않는 추상 클래스보다 더욱 추상화된 설계도이다.
설계도이므로 인스턴스(Instance)를 생성할 수 없고 기본 틀만을 제공하는 역할이다.
또한 인터페이스로 다중 상속이 되지 않는 자바의 단점을 보완할 수 있다.
인터페이스는 클래스가 아닌 다른 자료형이므로 Interface를 사용해야 한다.
Java
public interface Food {
void imformation();
}
Java
public class Beverage implements Food {
private String name;
private int liter;
public Beverage(String name, int liter){
this.name = name;
this.liter = liter;
}
@Override
public void imformation(){
System.out.println(this.name + "는 용량이 " + this.liter + "ml입니다.");
}
위처럼 인터페이스를 사용하여 인터페이스를 구현할 수 있다.
Java
public class Beverage implements Food, Menu, ... {
위처럼 인터페이스를 여러 개 사용할 수 있다.
● 디폴트 메서드(Default Method)
인터페이스를 사용하는 클래스가 반드시 구현할 필요 없이 필요에 의해 사용 가능하다.
Java
public interface Food {
void imformation();
default void beverage(){
System.out.println("이것은 음료수입니다.");
}
}
● 정적 메서드(Static Method)
인터페이스는 따로 기능 구현을 할 수 없지만 static 을 사용하여 메서드를 사용할 수 있다.
Java
public interface Food {
void imformation();
default void init(){
System.out.println("이것은 음식입니다.");
}
}
Java
public static void main(String[] args) {
Food.init();
}
=> 이것은 음식입니다.