Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발계발

다중 인터페이스 구현 본문

자바

다중 인터페이스 구현

Ju_Nik_E 2024. 5. 2. 16:16
이전에 인터페이스에 대해 포스팅했는데, 구현 객체는 여러 개의 인터페이스를 implements할 수 있다.
사용법은 아래와 같다.
public class 구현클래스 implements 인터페이스1, 인터페이스2 {

}

이 경우, 구현 클래스는 여러 개의 인터페이스의 추상 메소드를 모두 재정의 해야한다.

 

인터페이스 상속

자바의 클래스는 다중 상속을 허용하지 않으나, 인터페이스는 다중 상속이 허용된다.
사용법은 아래와 같다.
public interface 자식인터페이스 extends 부모인터페이스1, 부모인터페이스2 {
	...
}

이 경우, 이 자식인터페이스의 구현 클래스는 자식 인터페이스와 모든 부모 인터페이스의 모든 추상 메소드를 재정의해야 한다.

단, 구현 객체를 부모 인터페이스 변수에 대입할 경우, 자식 인터페이스의 추상 메소드는 호출 불가능하다.

아래 예시를 보자

public interface InterfaceA {
	void methodA();
}

public interface InterfaceB {
	void methodB();
}

public interface InterfaceC extends InterfaceA, InterfaceC {
	void methodC();
}

public class InterfaceCImple implements InterfaceC {
    // 추상 메소드 재정의
	public void methodA() {
    	
    }
    
    public void methodB() {
    	
    }
    
    public void methodC() {
    	
    }
}

 

public class ExtendsExample {
	public static void main(String[] args) {
    	InterfaceCImpl impl = new InterfaceCImpl();
        
        //부모 인터페이스 변수에 대입
        InterfaceA ia = impl;
        ia.methodA();
        // ia.methodB(); 사용불가
        // ia.methodC(); 사용불가
        
        InterfaceB ia = impl;
        // ib.methodA(); 사용불가
        ib.methodB();
        // ib.methodC(); 사용불가
        
        InterfaceC ic = impl;
        ic.methodA();
        ic.methodb();
        ic.methodc();
    }
}

'자바' 카테고리의 다른 글

인터페이스의 타입 변환과 다형성  (0) 2024.05.02
인터페이스  (0) 2024.05.02
추상 클래스와 봉인 클래스  (0) 2024.04.26
상속  (1) 2024.04.26
접근 제한자  (0) 2024.04.26