Всем привет!
Вывод правильный, но валидатор не принимает ответ
package com.javarush.task.task24.task2408;
import java.util.Date;
/*
В работе вам иногда будет нужно закастить класс к какому-нибудь другому классу, не интерфейсу :)))
Класс DogPet использует 2 класса - SuperDog и Dog, разберись с getName в классе DogPet
Так намного лучше, чем Copy+Paste!
*/
public class Dog implements Pet {
private String name;
public Dog(String name) {
this.name = name;
}
/**
* Пусть этот метод возвращает имя собаки (класс Dog), которое с обеих сторон выделено getSuperQuotes (класс SuperDog)
* Пример, " *** Барбос *** "
* Логика метода say:
* Если i < 1, то используя метод getName вывести на экран, что собака спит. Пример, " *** Шарик *** спит."'
* Иначе вывести фразу: "имя_собаки лает гааав! сегодняшняя_дата". Пример для i=3, " *** Тузик *** лает гааав! 13-ноя-2013 Ср"
* Для форматирования даты используйте formatter из класса SuperDog.
* <p/>
* <b>Пример вывода:</b>
* *** Барбос *** лает гааааав! 13-ноя.-2013 ср
* *** Тузик *** лает гаав! 13-ноя.-2013 ср
* *** Бобик *** лает гааав! 13-ноя.-2013 ср
* Мышь пищит.
* *** Шарик *** спит.
*
* @param i количество букв 'а' в слове гав
* @return экземпляр класса DogPet
*/
public Sayable toSayable(final int i) {
class DogPet extends SuperDog implements Sayable {
@Override
public String say() {
String result;
Date date = new Date();
StringBuilder a = new StringBuilder("");
for (int j = 0; j < i; j++) {
a.append("a");
}
if (i < 1) {
result = getName() + " спит.";
} else result = getName() + " лает г" + a + "в! " + String.format(formatter.format(date));
return result;
}
private String getName() {
return String.format("%2$s%s%2$s", name, getSuperQuotes());
}
}
return new DogPet();
}
}