모든 메서드가 추상 메서드가 된다 public abstract
명시하지 않아도 추상 메서드가 된다
모든 변수는 상수로 선언된다 public static final
명시하지 않아도 상수로 선언된다
인터페이스를 구현한 클래스는 인터페이스 형으로 선언한후 변수로 형 변환 할 수 있다
클래스의 상속은 1개만 가능하지만 인터페이스의 구현은 여러 인터페이스를 구현할 수 있다
형변환되는 경우 인터페이스에 선언된 메서드만 사용가능하다
인터페이스는 왜 사용하는가?
클래스나 프로그램이 제공하는 기능을 명시적으로 선언
일종의 클라이언트 코드와의 약속이며 클래스나 프로그램이 제공하는 명세
클라이언트 프로그램은 인터페이스에 선언된 메서드 명세만 보고 이를 구현한 클래스를 사용할 수 있음
어떤 객체가 하나의 인터페이스 타입이라는 것은 그 인터페이스가 제공하는 모든 메서드를 구현했다는 의미
인터페이스를 구현한 다양한 객체를 사용함
default 함수 선언후 기능구현이 가능함. 인터페이스가 구현되고 인스턴스생성되면 사용할 수 있다. 오버라이딩 가능
static 함수 선언후 기능구현이 가능하다. 인터페이스를 구현하는 클래스의 인스턴스 생성하지 않고도 가능하다
private 함수 선언후 기능구현 가능하다. 인터페이스 안에서만 사용가능하다
하나의 클래스로 다중 인터페이스 구현 가능하다.
인터페이스간에 상속이 가능하다 extends 사용
상속과 구현같이 사용 가능하다