인프런 커뮤니티 질문&답변

linuxmen님의 프로필 이미지
linuxmen

작성한 질문수

자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 2(마스터편)

무엇이든 담을 수 있는 제네릭(Generic) 프로그래밍

Generic 강의중 궁금한점

작성

·

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

linuxmen님의 프로필 이미지
linuxmen

작성한 질문수

질문하기