자바[JAVA] – 11.인터페이스(Interface)

인터페이스?

인터페이스(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();
}

=> 이것은 음식입니다.

Leave a Comment