interface 끼리의 상속관계
interface 끼리 상속받을때에는 implements가 아닌 extends로 상속관계리를 맺는다.
또한 추상클래스끼리 상속받을 시 오버라이딩을 미루어서 차후에
일반 클래스가 이 추상클래스를 상속받게 되면 그때 한번에 오버라이딩 하는것처럼
인터페이스끼리의 상속관계에서도 오버라이딩을 미룰 수 있으며,
차후 일반클래스가 이 interface를 implements 할 때 그때 한번에 오버라이딩 하게 된다.
다음 예제가 위 설명에 대한 예시이다.
-------------------------------------------------------------------------------------------
interface C
{
public void c();
}
interface A extends C //인터페이스끼리 상속은 implements가 아닌 extends이다.
{
public void a(); // interhace A에서 C 인터페이스의 메소드 c()를 오버라이딩 하지 않았다.
}
class B implements A // 대신 이곳에서 c()메소드를 오버라이딩 하였다.
{
public void a()
{
System.out.println("Class B and Method a()");
}
public void c()
{
System.out.println("Class B and Method c()");
}
}
public class ExtendsTest extends B implements C, A // 여기서 이 implements는 의미가 없다.
{ // 이미 위에서 상속관계가 구현이 되었고,
public ExtendsTest() // 오버라이딩도 끝낸 상태이기 때문에
{ // 여기서는 인터페이스에 대한 메소드를
// 재정의 하지 않았다.
this.a(); // 부모객체의 메소드를 호출하였다.
}//기본생성자
public static void main(String[] args)
{
ExtendsTest ins = new ExtendsTest();
}
}/////////////////////////////////////////////////
'Java' 카테고리의 다른 글
오버라이딩에서 유의해야 하는점(반환타입과 예외의 상관관계) / SCJP 247번 문제 (0) | 2013.07.25 |
---|---|
java.io.Console 클래스 SCJP 216번 문제 (0) | 2013.07.25 |
StackOverflowError / SCJP 174번 문제 (0) | 2013.07.25 |
Object클래스의 finalize() 메소드의 사용예제 (0) | 2013.07.25 |
접근지정자의 접근범위 (0) | 2013.07.25 |