반응형

[쉽게 배우는 자바 프로그래밍] 

        Chapter 07. 추상 클래스와 인터페이스

            프로그래밍 문제

 

6. 어떤 프린터 용지를 사용했는지 점검하려고 다음 프로그램을 작성했다. Call 클래스를 완성하시오.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
interface Printable {
    
}
class A4 implements Printable {
    public void a() {
        System.out.println("A4");
    }
}
class B4 implements Printable {
    public void b() {
        System.out.println("B4");
    }
}
class Call {
    // 코드 추가
}
public class PrintableTest {
    public static void main(String[] args) {
        Printable p = new B4();
        Call c = new Call();
        c.invoke(p);
    }
}

 

B4

 


        [ Printable.java ]

1
2
3
public interface Printable {
 
}

 

 

        [ A4.java ]

1
2
3
4
5
public class A4 implements Printable {    
    public void a() {      
        System.out.println("A4");        
    }
}

 

 

        [ B4.java ]

1
2
3
4
5
public class B4 implements Printable {    
    public void b() {      
        System.out.println("B4");        
    }
}

 

 

        [ Call.java ]

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Call {
 
    public void invoke(Printable p) {
 
        if (p instanceof A4) {
           ((A4) p).a();
        } else if (p instanceof B4) {
           ((B4) p).b();
        }
 
    }
 
}

 

 

        [ PrintableTest.java ]

1
2
3
4
5
6
7
8
9
10
11
public class PrintableTest {
    
    public static void main(String[] args) {
        
        Printable p = new B4();
        Call c = new Call();
        c.invoke(p);
        
    }
    
}

 

 

반응형