package com.company;
public class Main {
public static void main(String[] args) {
Hen hen = HenFactory.getHen(Country.RUSSIA);
hen.getCountOfEggsPerMonth();
System.out.println(hen.getDescription());
}
static class HenFactory {
static Hen getHen(String country) {
Hen hen = null;
if (country.equals(Country.RUSSIA)) { hen = new RussianHen(); }
return hen;
}
}
abstract static class Hen {
abstract int getCountOfEggsPerMonth();
String getDescription(){
return ("Я - курица. ");
}
}
class RussianHen extends Hen {
int getCountOfEggsPerMonth() {
return 10;
}
String getDescription() {
return (super.getDescription() +
"Моя страна - Russia. " +
"Я несу " + this.getCountOfEggsPerMonth() + " яиц в месяц.");
}
}
}
Garibaldi
20 уровень
Если классы сделать в разных файлах, то все работает, а если в одном "Main", как внизу, то не компилируется, подчеркивает new RussianHen() как "com.company.Main.this" cannot be referenced from a static contest. P.S. на названия прошу не обращать внимания-черновик
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Max
14 мая 2018, 23:05решение
Больше так не выкладывай, пока прочитал, чуть не сломался)))
Не вставляй текст, а выкладывай с заданием и всем остальным
Переведи ошибку, у тебя проблемы тут со статиками и их отсутствием
+2
Garibaldi
9 мая 2018, 10:30
Спасибо за ответ, это понятно. Но это был бы вопрос к валидации. а так даже не хочет компилировать в отдельном проекте. package com.company;
0
Roman Pryshchepa Java Developer Expert
8 мая 2018, 13:05
По требованию задачи:
9. Все созданные вами классы должны быть в отдельных файлах.
0