순수 추상 클래스(모든 메서드가 추상 메서드인 추상 클래스)를 더 편리하게 사용할 수 있는 기능
public abstract class AbstractAnimal {
public abstract void sound();
public abstract void move();
}
public interface InterfaceAnimal {
public abstract void sound();
public abstract void move();
}
상수 : public만 허용, public static final 생략
추상 메서드 : public abstract 생략 가능
default 메서드 : 인터페이스에 코드가 작성된 메서드, 인터페이스를 구현하는 클래스에 자동 상속
private 메서드 : 인터페이스 내에 메서드 코드가 작성되어야 함
static 메서드 : public, private 모두 지정 가능
인터페이스의 객체 생성 불가하다
인터페이스 타입의 레퍼런스 변수 선언 가능하다
다른 인터페이스 상속 가능하다
인터페이스의 다중 상속이 가능하다
인터페이스의 추상 메소드를 모두 구현한 클래스를 작성한다.
implements 키워드를 사용한다
여러 개의 인터페이스를 동시에 구현 가능하다
class SamsungPhone implements PhoneInterface {
// PhoneInterface의 모든 메서드 구현
}
extends 키워드를 사용한다
다중 인터페이스 상속이 가능하다
interface MP3Interface {
void play();
void stop();
}
interface MusicPhoneInterface extends MobilePhoneInterface, MP3Interface {
void playMp3RingTone();
}