minNa2 2023. 7. 4. 18:16

LgTV.java

package org.joonzis.DI_2;

public class LgTV implements TV{
	public LgTV() {}
	
	@Override
	public void powerOn() {
		System.out.println("--> LgTV 전원 켠다");
	}
	
	@Override
	public void powerOff() {
		System.out.println("--> LgTV 전원 끈다");
	}
	
	@Override
	public void volumeUp() {
		System.out.println("--> LgTV 소리 올린다");
	}
	
	@Override
	public void volumeDown() {
		System.out.println("--> LgTV 소리 내린다");
	}
}

SamsungTV.java

package org.joonzis.DI_2;

public class SamsungTV implements TV { 
	public SamsungTV() {}
	
	@Override
	public void powerOn() {
		System.out.println("--> SamsungTV 전원 켠다");
	}
	
	@Override
	public void powerOff() {
		System.out.println("--> SamsungTV 전원 끈다");
	}
	
	@Override
	public void volumeUp() {
		System.out.println("--> SamsungTV 소리 올린다");
	}
	
	@Override
	public void volumeDown() {
		System.out.println("--> SamsungTV 소리 내린다");
	}
}

TV.java

package org.joonzis.DI_2;

public interface TV {
	public void powerOn();
	public void powerOff();
	public void volumeUp();
	public void volumeDown();
}

TVUser.java

package org.joonzis.DI_2;

public class TVUser {
	public static void main(String[] args) {
		LgTV lg = new LgTV();
		lg.powerOn();

		SamsungTV sam = new SamsungTV();
		sam.powerOn();

		System.out.println("--------------------");
		
		// 업캐스팅
		TV ltv = new LgTV();
		ltv.powerOff();
		
		TV stv = new SamsungTV();
		stv.powerOff();
	}
}
반응형