인터페이스 간에도 상속이 가능하다. 인터페이스 간 상속은 구현 코드를 통해 기능을 상속하는 것이 아니므로 '형 상속'
이라고 부른다.
클래스의 경우에는 하나의 클래스만 상속받을 수 있지만, 인터페이스는 여러 개를 동시에 상속받을 수 있다.
한 인터페이스가 여러 인터페이스를 상속받으면, 상속받은 인터페이스에서는 상위 인터페이스에서 선언한 추상 메서드를 모두 가지게 된다.
public interface X {
void x();
}
public interface Y {
void y();
}
public interface MyInterface extends X, Y {
void myMethod();
}
public class MyClass implements MyInterface {
@Override
public void x() {
System.out.println("x()");
}
@Override
public void y() {
System.out.println("y()");
}
@Override
public void myMethod() {
System.out.println("myMethod()");
}
}
public class MyClassTest {
public void static main(String[] args) {
MyClass mClass = new MyClass();
X xClass = mClass;
xClass.x(); // 상위 인터페이스 X형으로 대입하면 x()만 호출 가능
Y yClass = mClass;
yClass.y(); // 상위 인터페이스 Y형으로 대입해서 y()만 호출 가능
MyInterface iClass = mClass;
iClass.myMethod();
iClass.x();
iClass.y(); // 구현한 인터페이스형 변수에 대입하면 인터페이스가 상속한
} // 모든 메서드 호출 가능
}
위 코드처럼 상위 인터페이스형(X 또는 Y)이라면 해당 인터페이스의 메서드만 호출 가능하고,
상속받은 인터페이스형(MyInterface)이라면 해당 인터페이스의 메서드와 상위인터페이스의 메서드까지 모두 호출 가능하다.
'자바 기초' 카테고리의 다른 글
자바 hashCode() 메서드 - Do it ! 자바프로그래밍 기초 (0) | 2022.07.25 |
---|---|
자바 Object 클래스, toString, equals - Do it! 자바프로그래밍기초 (0) | 2022.07.25 |
자바 인터페이스 - Do it! 자바프로그래밍기초 (0) | 2022.07.22 |
자바 템플릿 메서드, final - Do it! 자바프로그래밍기초 (0) | 2022.07.22 |
자바 추상클래스 - Do it! 자바프로그래밍기초 (0) | 2022.07.22 |