본문 바로가기
study/Java

[Java] 24. Interface2 (리턴타입이 인터페이스인 경우)

by 금이패런츠 2022. 3. 22.
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
반응형