У меня есть абстрактный класс Animal
Глядя, как этотПерекрытие toSting в производном классе
abstract class Animal{
protected int numberOfPaws;
public abstract String speak();
public String toString(){
return "I have " + numberOfPaws + " paws";
}
}
Тогда я производный класс, который имеет новую реализацию toString()
глядя, как этот
class Cow : Animal{
public Cow : base(4) {}
public override String speak(){
return "Moo!";
}
public new Strinf toString(){
return "I am a Cow " + base.toString();
}
}
И у меня есть в основном выглядящий
void Main{
Cow c = new Cow();
Console.WriteLine(c.toString());
}
Но когда я запускаю этот он печатает UserQuery+Cow
на консоль.
У меня нет понятия, что я делаю неправильно? Это делает это из-за base.toString()
?
Во-первых, так как вы используете интерфейс, Вы должны изменить вашу инициализацию корову Cow c = new Animal(); – MajkeloDev
@MajkeloDev Нет, это должно быть «Animal c = new Cow();'. –
О, ты прав. – MajkeloDev