추상 클래스의 한계
- 자바 클래스 간의 상속에는 하나의 부모만 존재할 수 있기 때문에, 앞의 상황에서 요구하는 다중 상속의 구현은 불가능하다.
Interface란?
- 완벽한 추상화를 구현하기위한 java Class의 한 종류이다.
- 다중 상속이 가능하기 때문에 용도별로 세분화 하여 필요한 요소만 상속할 수 있다.
비교
- 추상클래스
-> 멤버변수, 생성자, 메서드, 추상메서드를 포함할 수 있다.
-> 이 클래스를 상속받는 자식 클래스는 다른 클래스를 상속받을 수 없다.
-> 객체의 생성이 불가능하다
- 인터페이스
-> 추상메서드만 포함할 수 있다.
-> 인터페이스는 다중 상속이 가능하다.
-> 객체의 생성이 불가능하다.
implements
- 인터페이스의 상속은 implements 키워드를 사용한다.
- 인터페이스도 추상화를 구현하고 있기 때문에, 인터페이스를 상속받는 클래스는 인터페이스 내의 모든 메서드들을 반드시 재정의 해야 한다.
인터페이스의 다중 상속
- 인터페이스는 콤마(,)로 연결하여 여러 개를 동시에 상속 받을 수 있다.
public class Monster implements Fight, Move{
}
- 필요한 경우 다른 클래스와 동시에 상속받을 수 있다.
public class Monster extends User implements Fight, Move{
}