Java

interface 끼리의 상속관계

bang2001 2013. 7. 25. 16:50

interface 끼리의 상속관계


interface 끼리 상속받을때에는 implements가 아닌 extends로 상속관계리를 맺는다.

또한 추상클래스끼리 상속받을 시 오버라이딩을 미루어서 차후에 

일반 클래스가 이 추상클래스를 상속받게 되면 그때 한번에 오버라이딩 하는것처럼

인터페이스끼리의 상속관계에서도 오버라이딩을 미룰 수 있으며,

차후 일반클래스가 이 interface를 implements 할 때 그때 한번에 오버라이딩 하게 된다.

다음 예제가 위 설명에 대한 예시이다.

-------------------------------------------------------------------------------------------

interface C
{
public void c();
}

interface extends //인터페이스끼리 상속은 implements가 아닌 extends이다.
{
public void a();  // interhace A에서 C 인터페이스의 메소드 c()를 오버라이딩 하지 않았다.
}

class implements // 대신 이곳에서 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 implements C, A // 여기서 이 implements는 의미가 없다.
{                                                                         // 이미 위에서 상속관계가 구현이 되었고,
public ExtendsTest()                                     // 오버라이딩도 끝낸 상태이기 때문에 
{                                                                 // 여기서는 인터페이스에 대한 메소드를
                                                                           // 재정의 하지 않았다.
this.a(); // 부모객체의 메소드를 호출하였다.
}//기본생성자

public static void main(String[] args) 
{
ExtendsTest ins = new ExtendsTest();
}
}/////////////////////////////////////////////////