1. 인터페이스와 클래스의 차이
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 31 32 33 34 35 | hjjavainterface 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 PolymorphismDemo3 { public static void main(String[] args) { //전체 메소드 사용 가능 D obj = new D(); // I2에 정의된 메소드만 사용가능 I2 objI2 = new D(); //I3에 정의된 메소드만 사용가능 I3 objI3 = new D(); //아무 문제가 없다. obj.A(); obj.B(); objI2.A(); //objI2.B(); 존재하지 않는 메소드 //objI3.A(); objI3.B(); 존재하지 않는 메소드 } } | cs |
Hand 인터페이스를 implements한 클래스(Car, Book, Water)가 있다
hand에는 들어올리다, 보다라는 메소드가 있고 이것을 implements한 Car,Book,Water는 전부 구현한 상태이다.
그리고 인터페이스에 주입하는 클래스의 객체가 어떤 것이냐에 따라 서로다른 역할 을 감당할 수 있다.
//Car클래스의 메소드와 Hand의 인터페이스를 구현한 메소드 및 인스턴스 변수를 사용할 수 있는 것이다.
Hand hand = new Car();
그러나 여기서 유의할점은 Hand를 implements한 다른 클래스는 new Car()객체의 메소드는 부를 수 없다
Hand hand2 = new Book();
//오류 없는 메소드
hand2.door();
'Java > 자바 공부' 카테고리의 다른 글
Calendar, DATE, TIMEZONE, SimpleDateFormat (5) | 2018.10.14 |
---|---|
JAVA 에서 데이터베이스 사용하는 종류 (0) | 2018.04.09 |
Set에 대해서 공부 (0) | 2018.04.04 |
Java의 접근 지정자 (0) | 2018.04.04 |
클래스와 인스턴스와 생성자 정의 (0) | 2018.02.12 |