본문 바로가기
수업시간 JAVA/이론

Interface

by SEOKIHOUSE 2023. 4. 9.
package practice0407;

class SamsungTv implements Tv {
	@Override
	public void turnOn() {
		System.out.println("Samsung 전원 on~");
	}

	@Override
	public void turnOff() {
		System.out.println("Samsung 전원 off~");
	}
}

class LgTv implements Tv {
	@Override
	public void turnOn() {
		System.out.println("Lg 전원 on~");
	}

	@Override
	public void turnOff() {
		System.out.println("Lg 전원 off~");
	}
}

class BeanFactory {
	public Object getBean(String beanName) {
		if (beanName.equals("samsung")) {
			return new SamsungTv();
		} else if (beanName.equals("lg")) {
			return new LgTv();
		}
		return null;
	}
}

interface Tv {
	public void turnOn();

	public void turnOff();
}

public class Abstract {

	public static void main(String[] args) {
		BeanFactory factory = new BeanFactory();
		Tv st = (Tv) factory.getBean("samsung");
//		Tv st = (Tv)factory.getBean(args[0]);  //bean 어떤 객체를 생성해주는것
									//↑  run configure에서 argument에 값넣고 실행가능
		st.turnOn();
		st.turnOff();
	}
}