Куриная фабрика

  • 16
  • Недоступна
Создадим международную куриную фабрику, заселим её курами разного происхождения. Создадим каталог, в котором будем указывать национальность курицы будем подсчитывать, сколько яиц в месяц они несут. Как это сделать? С помощью абстрактных классов и наследования, разумеется.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (502)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Артур Прохоренко14 уровень, Гомель
вчера, 09:26
Уважаемые разработчики, пожалуйста синхронизируйте тест заданий в IDEA и на сайте. При решении данной задачи в IDEA, в условии нет ни слова, что все классы должны быть в отдельных файлах, из-за этого полностью рабочая задача не проходит ни одно из условий. Уважайте наше время и берегите наши нервы)) Спасибо!!!
Виктор15 уровень, Саранск
20 сентября, 20:04
я вот больно знаю как эти страны пишутся. Belarusian - Belarus и т.д. Почему нельзя было оставить Belarusian. =/
Людмила15 уровень, Санкт-Петербург
20 сентября, 18:47
Методы должны возвращать строку вида: <getDescription() родительского класса> Как это сделать: super.getDescription() + " Моя страна... Я не знала, что так можно, из-за этого у меня десять миллионов попыток и легкая форма психоза
Артур Прохоренко14 уровень, Гомель
вчера, 09:22
я тоже не сразу понял, пытался по умолчанию вызывать метод, потом дошло))
Сергей15 уровень, Брест
18 сентября, 13:33
Да, задача, в том числе на внимательность))
Сэм Фишер18 уровень, Кишинев
14 сентября, 13:21
рабочий код написал за 5 минут и убил минут 40 тупо на то, чтобы понравилось все валидатору. будьте осторожны - ВСЕ СОЗДАННЫЕ КЛАССЫ ДОЛЖНЫ ЛЕЖАТЬ В ОТДЕЛЬНЫХ ФАЙЛАХ!в том числе и Hen. Будьте предельно внимательны с пробелами и знаками препинания в тексте, который выводят методы описания.
Nicha17 уровень, Тольятти
11 сентября, 14:56
В этом методе вся сложность задачи!!! ))) Ребята, внимательно проверяйте написанное на соответствие с заданием. Совет : сделайте в одном классе правильно и копируйте в другие классы. ТОЛЬКО НЕ ЗАБУДЬТЕ ПОМЕНЯТЬ СТРАНЫ В КАЖДОМ МЕТОДЕ! 8 попыток из-за этого ))
public String getDescription()
Alexandr Vlasov15 уровень, Москва
11 сентября, 12:19
Впервые валидатор выдал по всем пунктам ошибки и отказывается признавать хоть один. При этом в IDEA всё отработало как верно и условия все выполнены, ну я надеюсь во всяком случае. Что может быть, к кому обратиться?
Никита Мохнач14 уровень, Киев
14 сентября, 14:39
классы должны быть созданы не в солюшене, а отдельными файлами в каталоге. Hen,RussianHen, и т.д.
Nikolai15 уровень, Санкт-Петербург
10 сентября, 16:58
Ukranian вместо Ukrainian, мать его, написал... В итоге из-за опечатки 4 последних пункта не проходили. Исправил - все прошло.
// irony
Evgeny Siganov14 уровень, Москва
позавчера, 05:45
Зачем вообще писать страны, они же перечислены в отдельном интерфейсе
Андрей18 уровень, Москва
9 сентября, 21:09
ИМХО [у авторов кода файлов задач и анализатора кода JavaRush иное мнение], но вот этот Интерфейс Country:
public interface Country {
    String UKRAINE = "Ukraine";
    String RUSSIA  = "Russia";
    String MOLDOVA = "Moldova";
    String BELARUS = "Belarus";
}
Должен быть enum'ом по типу:
enum Country {
    UKRAINE("Ukraine"),
    RUSSIA("Russia"),
    MOLDOVA("Moldova"),
    BELARUS("Belarus");

    private final String country;

    Country(String country) {
        this.country = country;
    }
}
Класс HenFactory и его метод getHen() стоит реализовать уже так:
static class HenFactory {

    private HenFactory(){}

    static Hen getHen(Country country) {
        return switch (country) {
            case BELARUS -> new UkrainianHen();
            case MOLDOVA -> new RussianHen();
            case UKRAINE -> new MoldovanHen();
            case RUSSIA  -> new BelarusianHen();
        };
    }
}
Ну и Класс Hen должен выглядеть как-то так:
abstract class Hen {

    private static final String DESCRIPTION = "Я - курица";

    abstract int getCountOfEggsPerMonth();

    public String getDescription() {
        return DESCRIPTION;
    }
}
Артем37 уровень, Москва
18 сентября, 12:22
про класс Hen ты вот вообще ничего не изменил, кроме как придумал константу (которая между прочим там не нужна). enum да, возможно ты прав. но я например не помню уже, давалась лекция про enum до этой задачи или нет. а ты его проверял на валидаторе, такое исполнение HenFactory ? насколько я понимаю switch-выражения появились только в 12й Java, а валидатор использует 8ую к тому же задача расписана в первую очередь таким образом, чтобы была понятна неопытным людям.
Андрей18 уровень, Москва
18 сентября, 14:45
Ну когда переменная будет изменяться, а не только "гетаться" только одним способом, то Его Величество Рефакторинг сделает её не константой. Enam проходили, вроде. Если не ошибаюсь, то в первом квесте, где-то в середине. Относительно swith конструкций я уже шишки несколько раз набил и понял, что на JavaRush валидатор не только на Java8(9), но какой-то статический, тк стоило мне часть кода вынести в отдельный private метод и вызвать его из метода main, как валидатор JavaRush меня не пропустил. Если учиться только на JavaRush, то в голову идеи импровизации не будут приходить)))
Илья17 уровень, Дзержинск
26 августа, 10:44
Аааа, 5 попыток из-за точек ((( Хотя сама задача не тянет на хард, если делать по инструкции.