본문 바로가기
STUDY/JAVA

인터페이스와 다형성1

by NOTEEE 2018. 1. 22.

인터페이스와 다형성


interface I{}
class C implements I{}
public class Polymorphism4 {
      I obj = new C();
}
cs

 - 클래스 C가 인터페이스 I를 구현하고 있기에 인스턴스화가 가능하다



interface I2{
    public String A();
}
interface I3{
    public String B();
}
class D implements I2, I3{
    public String A(){
        return "A";
    }
    public String B(){
        return "B";
    }
}
public class Polymorphism5 {
    public static void main(String[] args) {
        D obj = new D();
        // 인터페이스 I2인 것처럼 행세를 하고 있다.
        // 데이터 타입이 I2로 인스턴스화.
        I2 objI2 = new D();
        I3 objI3 = new D();
         
        obj.A();
        obj.B();
         
        objI2.A();
        // 메소드 B호출하면 존재하지 않는 것이므로 에러를 발생.
        // 데이터 타입을 I2로 인스턴스화 했기때문.(메소드 A만 가지고있는 것처럼 동작)
        // objI2.B();
         
        //objI3.A();
        objI3.B();
    }
}
cs

 - 여러 기능중에 특정한 인터페이스 기능들만 사용한다면 그 특정한 인터페이스만 지정하면 그 인터페이스의 정의하고있는 멤버를 제외한 나머지는 존재하지 않는 것 처럼 사용할 수 있다.

즉, 필요한 인터페이스의 기능만 쓰고, 나머지는 신경쓰지 않겠다는 의미.


 - 만약 모든 기능들을 사용하는거라면 D d = new D(); 를 정의하면 된다.

'STUDY > JAVA' 카테고리의 다른 글

예외처리1  (0) 2018.01.22
인터페이스와 다형성2  (0) 2018.01.22
다형성(Polymorphism)2  (0) 2018.01.22
다형성(Polymorphism)1  (0) 2018.01.22
Interface3  (0) 2018.01.22