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();

+ Recent posts