Я учусь полиморфизм, и я получаю эту красную линию в моем суперкласса и sublcass он прокомментировал мой код:Confused об ошибке при обучении полиморфизм
public class Animals {
private String name;
public Animals(String name) {
this.name = name;
}
public void changeName(String name){
this.name= name;
}
public String getName(){
return this.name; //
}
}
вот мой подкласс:
public class Dog extends Animals {
private String colour;
public Dog(String name, String colour){
super(name);
this.colour = colour;
}
public void changeColour(String colour) {
this.colour = colour;
}
public String getColour(){
return this.colour;
}
}
Вот другой сценарий с основным методом:
Я не знаю, почему я получаю т hese red lines Редактировать: Код работает, но ничего не выходит. Edit2: Исправлены классы.
Метод 'void' не может« вернуть »значение. – Kenney
Ваш метод 'getName()' объявляет 'void' (т. Е.« Тип возврата ») в качестве возвращаемого типа, но вы пытаетесь вернуть' String', содержимое переменной 'name'. Это несовместимо. Вам нужно будет объявить метод, как 'public String getName()'. –
'public void Animals (String name)' является методом. Чтобы превратить его в конструктор, удалите 'void', поэтому ваш базовый класс имеет только конструктор по умолчанию' public Animals() ', поэтому ошибка конструктора – idelvall