인터페이스와 다형성
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 |