728x90
반응형
package chap8;
/*
* 리턴타입이 인터페이스인 경우
*/
class LazerZet implements Printerable {
@Override
public void print() {
System.out.println("레이저 printer로 출력함");
}
}
class InkZet implements Printerable {
@Override
public void print() {
System.out.println("잉크젯 printer로 출력함");
}
}
class PrinterManager {
//Printerable 인터페이스 타입 리턴 : Printerable 인터페이스를 구현한 구현클래스의 객체 리턴.
public static Printerable getPrinter(String type) {
if(type.equals("INK")) return new InkZet();
else if (type.equals("LAZER")) return new LazerZet();
else return new Complexer();
}
}
public class InterfaceEx2 {
public static void main(String[] args) {
Printerable a = PrinterManager.getPrinter("INK");
// a : InkZet 객체
a.print();
// a : LazerZet 객체
a = PrinterManager.getPrinter("LAZER");
a.print();
a = PrinterManager.getPrinter("복합기");
a.print();
}
}
728x90
반응형
'study > Java' 카테고리의 다른 글
[Java] 24. Interface4 (인터페이스는 객체화가 안됨) (0) | 2022.03.22 |
---|---|
[Java] 24. Interface3 (매개변수로 사용되는 인터페이스) (0) | 2022.03.22 |
[Java] 24. Interface1 (인터페이스 예제) (0) | 2022.03.22 |
[Java] 23. 제한자 Exam1 (ARR 배열에 생성자에서 1부터 주어진 숫자까지의 값을 저장하기) (0) | 2022.03.21 |
[Java] 23. final3 (0) | 2022.03.21 |