2017-03-24 9 views
-4

예를 들어, 동물 이름을 반환하는 toString이있는 추상 동물 클래스가 있고 그 자식 클래스가 다르게 구현하지 않으면 toString을 재정의해야합니까?모든 클래스에는 toString 메서드가 필요합니까?

+3

아니요 ............. – mdewit

+0

왜 사용하지 않으시겠습니까? –

+0

toString 메서드는 Object 클래스 (https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString())에서 기본적으로 구현됩니다. 이 메서드는 추상 메서드가 아니므로이 메서드를 재정의 할 필요가 없습니다. 객체의 문자열 표현을 변경하려면 할 수 있습니다. – Dorian

답변

1

하위 클래스에서보다 자세한 설명을 제공하지 않으려면 제외하십시오. 당신은 Java에 대해 아주 익숙하지 않은 것처럼 들리므로 상속이 어떻게 작동하는지 이해하지 못할 수도 있습니다. 그렇다면이 질문은 의견을 기반으로합니다.

기본값 인 Object.toString()은 개체에 대한 매우 까다로운 정보를 반환하며 많은 클래스가이를 무시합니다. 그러나 AbstractList 같은 클래스가이를 오버라이드하므로 서로 다른 List 구현은 직접 재정의 할 필요가 없습니다. 상황은 당신이 묘사 한 것과 꽤 동일합니다. toString()AbstractList에 한 번 덮어 쓰고 ArrayList, LinkedList 등을 사용하면됩니다.

0

toString() 모든 클래스는 Object 클래스와 자바의 메소드는 Object 클래스를 상속 그래서이 클래스의 toString() 메소드

public class Test { 
} 

Test t = new Test(); 
t.toString(); // it's ok because it inherit the Object class 

toString가 레코드 값을 나타낼 때 사용됩니다 있습니다 사람이 읽을 수있는 형식입니다. System.out.println(t) 그 동일한 System.out.println(t.toString()) toString은 다른 사람들이 볼 수있는 클래스입니다. 클래스에 대한 정보가 있으므로 클래스에 대한 아이디어를 얻을 수 있습니다.

죄송합니다. 내 영어에 대해 ^^.

관련 문제