• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

Generic 강의중 궁금한점

23.06.27 14:31 작성 조회수 236

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 클래스 강의를 보시면 자세히 나와 있습니다.