Меня недавно попросили переписать класс, который использовал наследование, в класс, который вместо этого использовал композицию.Я столкнулся с проблемой, когда переписывал метод toString ();метод toString () не будет возвращать строковое значение, и я не получил ошибку времени выполнения или ошибку компиляции.Я закончил тем, что изменил возвращаемое значение на void и имя метода для вывода.поэтому вместо того, чтобы возвращать строковое значение, я использовал system.out
моя попытка использовать toString
public String toString()
{
return String.format(
"%s: %s %s\n%s: %s\n%s: %.2f\n%s: %.2f\n%s: %.2f\n%s: %.2f",
"based-salaried commission employee", cEmp.getFirstName(), cEmp.getLastName(),
"social security number", cEmp.getSocialSecurityNumber(),
"gross sales", cEmp.getGrossSales(),
"commission rate", cEmp.getCommissionRate(),
"base salary",baseSalary,
"earnings", earnings());
}
, с чем я согласился
public void outPut()
{
System.out.printf(
"%s: %s %s\n%s: %s\n%s: %.2f\n%s: %.2f\n%s: %.2f\n%s: %.2f",
"based-salaried commission employee", cEmp.getFirstName(), cEmp.getLastName(),
"social security number", cEmp.getSocialSecurityNumber(),
"gross sales", cEmp.getGrossSales(),
"commission rate", cEmp.getCommissionRate(),
"base salary",baseSalary,
"earnings", earnings());
}
Мой вопрос - почему?я получаю ошибку компиляции или времени выполнения от javac, когда использую метод toString (), и почему он не возвращает строковое значение, если нет ошибки.
надеюсь, что это не слишком странновопроса.