작성
·
330
0
GenericPrinter<P> powderPrinter = new GenericPrinter<>();
powderPrinter.setMaterial(new Powder());
System.out.println(powderPrinter);
이렇게 출력하면 "재료는 Powder 입니다" 가 출력되는데
(Powder class 안에
public String toString(){
return "재료는Powder 입니다"
} )문장에 의해서...
출력된다고 하는데 왜 그런지 모르겠습니다.
System.out.println(powderPrinter); 어떻게 Powder class 안에
public String toString() 호출하는지...모르겠습니다
답변 1
1
이 부분은 Object 클래스 부분을 보시면 됩니다. 원래 참조 변수를 System.out.println(참조변수) 메서드의 매개변수로 쓰면 toString()이 호출되고 이때 클래스에 toString()메서드가 오버라이딩 된 경우에는 해당 메서드가 호출됩니다. String, Integer 클래스들의 value 값이 출력되는 이유와 같습니다. Object 클래스 강의를 보시면 자세히 나와 있습니다.