public class Solution {
public static void main(String[] args) {
Hen hen = HenFactory.getHen(Country.BELARUS);
hen.getCountOfEggsPerMonth();
}
static class HenFactory implements Country {
static Hen getHen(String country) {
Hen hen = null;
switch (country) {
case Country.BELARUS: hen = new BelarusianHen();
break;
}
return hen;
}
}
interface Country {
String UKRAINE = "Ukraine";
String RUSSIA = "Russia";
String MOLDOVA = "Moldova";
String BELARUS = "Belarus";
}
public abstract class Hen{
public abstract int getCountOfEggsPerMonth();
public String getDescription(){
return "Я - курица.";
}}
class BelarusianHen extends Hen{
public int getCountOfEggsPerMonth() {
return 2;
}
@Override
public String getDescription(){
String.format("%s Моя страна - %s. Я несу %s яиц в месяц.", super.getDescription(), Country.RUSSIA, this.getCountOfEggsPerMonth());
}
}
}
gunsroses
22 уровень
привет! написал весть код в один класс, пишет ошибку " non-static variable this cannot be referenced from a static context" может кто подскажет..?? спасибо
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
9 октября 2020, 07:28
У тебя все классы создан внутри Solution, а создать объект вложенного нестатического класса без привязки к внешнему объекту нельзя.
А зачем ты все пишешь в один класс, если в условии написано писать в отдельных файлах?
0
gunsroses
14 октября 2020, 05:15
пробую разные варианты) спасибо
0
Wladyslaw Java Developer Master
9 октября 2020, 07:27
Проблема в том что все твои классы - вложенные не статические по отношению к солюшну. Потому для того чтобы инстанциироваться им всем нужна ссылка на объект типа солюшн. А значит - перед тем как создавать инстанс какой-то курицы - придется создать солюшн. Или сделать все вложенные классы статическими.
Но зачем все в одном классе то?
0
gunsroses
14 октября 2020, 05:16
для более глубокого понимания) спасибо
0