완벽한 추상화를 구현하기 위한 Java Class의 한 종류
다중 상속이 가능하기 때문에 용도별로 세분화 하여 필요한 요소만 상속할 수 있다.
추상 클래스
-> 멤버변수, 생성자, 메서드, 추상 메서드를 포함할 수 있다.
-> 이 클래스를 상속받은 자식 클래스는 다른 클래스를 상속받을 수 없다.
-> 객체의 생성이 불가능하다.
public interface Unit {
// 기본적으로 인터페이스에 추가되는 모든 메서드는 추상 메서드이기 때문에,
// abstract 키워드를 명시할 필요가 없다.
public void attack();
public void shield();
}
인터페이스
-> 추상 메서드만 포함할 수 있다.
-> 인터페이스는 다중 상속이 가능하다.
-> 객체의 생성이 불가능하다.
// 인터페이스 상속을 위한 implements
- 인터페이스 상속은 implements 키워드를 사용한다.
- 인터페이스도 추상화를 구현하고 있기 때문에,
인터페이스를 상속받는 클래스는 인터페이스 내의 모든 메서드들을 반드시 재정의 해야 한다.
- 인터페이스는 콤마(,)로 연결하여 여러 개를 동시에 상속 받을 수 있다.
- 필요한 경우 다른 클래스와 동시에 상속 받을 수 있다.(implements, extends)
public class User implements Unit{
@Override
public void attack() {
}
@Override
public void shield() {
}
}