-미완성 설계도, 인스턴스 생성불가,
-미완성 메서드(추상 메서드)를 포함하고 있는 클래스
-상속 받을 땐 extends를 사용한다
형식 ->
abstract class 클래스명{
abstract 메소드명(); // 추상 메소드
void 메소드명(){
} // 일반 인스턴스 메소드
}
-인터페이스는 일종의 추상클래스이다
-추상 클래스는 미완성 설계도라고 치면 인터페이스는 기본 설계도라고 할 수 있다
-인터페이스는 추상클래스처럼 완성되지 않은 불완전한 것이기 떄문에 그 자체만으로 사용되기 보다는 다른 클래스를 작성하는데 도움 줄 목적으로 작성된다
형식 -> (상수와 추상메서드만 사용이 가능하다)
interface 인터페이스 이름{
public static final 타입 상수 이름 = 값;
public abstract 메서드 이름(매개변수목록);
}
-인터페이스는 클래스와 달리 Object클래스와 같은 최고 조상이 없다
-인터페이스는 인터페이스로부터만 상속받을 수 있으며, 클래스와는 달리 다중상속, 즉 여러개의 인터페이스로부터 상속을 받는 것이 가능하다 (추상메서드는 충돌해도 상관이 없기때문에)
-인터페이스는 추상 클래스처럼 그 자체로는 인스턴스를 생성할 수 없으며, 추상 클래스가 상속을 통해 추상메서드를 완성하는 것 처럼, 인터페이스도 자신에 정의된 추상메서드의 몸통을 만들어주는 클래스를 작성해야 하는데, 추상 클래스를 상속 받는 것 처럼 인터페이스도 크게 다르지 않다 하지만 키워드 extends대신 implements 를 사용한다
-만일 구현하는 인처페이스의 메서드 중 일부만 구현한다면, abstract를 붙여 추상 클래스로 선언 해야한다
-상속(extends)과 구현(implements) 동시에 가능함