пытаюсь воспользоваться геттером из класса-родителя, но при обращении к классу, не доступен метод getName
Помогите плиз!!!
пользовался комментарием к задаче: "...
Сергей Кузнецов 16 уровень, Москва
8 ноября 2017, 18:10
viva инкапсуляция:
...
Собственно для каждого животного делается конструктор, который дает ему имя при создании. Для класса Animal пишется getter для этого имени, который не нужно перегружать из подклассов (он же наследуется)
Если в метод getObjectType попадает любое животное - метод самостоятельно спрашивает его имя.
..."
public class Solution {
public static void main(String[] args) {
System.out.println(getObjectType(new Cat()));
System.out.println(getObjectType(new Tiger()));
System.out.println(getObjectType(new Lion()));
System.out.println(getObjectType(new Bull()));
System.out.println(getObjectType(new Cow()));
System.out.println(getObjectType(new Animal()));
}
public static String getObjectType(Object o) {
//напишите тут ваш код
//Tiger.getName() - тут метод не обнаружен!!!!!!!!!!!!!!!!!!!!! почему???????????????
// if (o instanceof Cat) return "Кот";
// else if (o instanceof Tiger) return "Тигр";
// else if (o instanceof Lion) return "Лев";
// else if (o instanceof Bull) return "Бык";
// else if (o instanceof Cow) return "Корова";
// else return "Животное";
}
public static class Cat extends Animal //<--Классы наследуются!!
{
public Cat() {this.name = "Cat";}
}
public static class Tiger extends Cat {
public Tiger() {this.name = "Tiger";}
}
public static class Lion extends Cat {
public Lion() {this.name = "Lion";}
}
public static class Bull extends Animal {
public Bull() {this.name = "Bull";}
}
public static class Cow extends Animal {
public Cow() {this.name = "Cow";}
}
public static class Animal {
public String name;
public String getName() {
return this.name;
}
}
}