프로그래밍/자바(Java)

[ 자바 / JAVA ] 인터페이스(interface)

후르트링 2021. 7. 23. 15:17
728x90

[인터페이스란?]

  • 클래스나 프로그램이 제공하는 기능을 명시적으로 선언하는 역할을 합니다.
  • 메소드의 구현부가 없기 때문에 인터페이스 내에 존재하는 모든 멤버 변수는 public static final입니다.
  • 인터페이스 내에 존재하는 메소드는 무조건 public abstract로 선언됩니다.
  • 어떤 객체가 하나의 인터페이스 타입이라는 것은 그 인터페이스가 제공하는 모든 메서드를 구현했다는 의미입니다.
  • 하나의 인터페이스를 여러 객체가 구현하게 되면 클라이언트 프로그램은 인터페이스의 메서드를 활용하여 여러 객체의 구현을 사용할 수 있습니다. (다형성 구현)
  • 예) JDBC 드라이버
public interface 인터페이스 이름{

    public static final float pi = 3.14F;
    public abstract void func();
}

 

[인터페이스 상속/구현]

  • 클래스가 인터페이스 상속하는 경우에는 '상속'보다는 '구현'이라고 표현합니다.
    • 인터페이스에 정의된 빈 메소드를 구현해야하기 때문입니다.
  • 그래서 인터페이스를 구현(상속)할 때 키워드는 extends가 아닌 implements를 사용합니다.
  • 추상 클래스와 마찬가지로 인터페이스가 직접 인스턴스를 생성할 수 없습니다.
interface Animal {
  void cry();
}

class Dog implements Animal {
  public void cry(){
    System.out.println("bark! bark!")
  }
}