package generic;
public class ThreeDPrinter {
private Object material; //Object는 모든 클래스의 조상이다
public void setMaterial(Object material) {
this.material = material;
}
public Object getMaterial() {
return material;
}
@Override
public String toString() {
return "재료는"+ material ;
}
}
package generic;
public class Powder extends Material{
public void doPrinting() {
System.out.println("Powder 재료로 출력합니다");
}
public String toString() {
return "재료는 Powder입니다";
}
}
package generic;
public class Plastic extends Material {
public void doPrinting() {
System.out.println("Plastic 재료로 출력합니다");
}
public String toString() {
return "재료는 Plastic입니다";
}
}
package generic;
public class PrinterTest {
public static void main(String[] args) {
ThreeDPrinter printer = new ThreeDPrinter();
Powder powder = new Powder();
Plastic plastic = new Plastic();
printer.setMaterial(powder);
System.out.println(printer);
User user = new User("홍길동",34);
printer.setMaterial(user);
System.out.println(printer);
// Generic3DPrinter<String> gp = new Generic3DPrinter<>();
// gp.setData("플라스틱");
// String s = gp.getData();
// System.out.println(s);
Generic3DPrinter<Powder> gp1 = new Generic3DPrinter<>();
gp1.setData(powder);
System.out.println(gp1.getData());
}
}