在派生 class 中覆盖 toString
Overriding toSting in derived class
我有一个摘要classAnimal
看起来像这样
abstract class Animal{
protected int numberOfPaws;
public abstract String speak();
public String toString(){
return "I have " + numberOfPaws + " paws";
}
}
然后我有一个派生的 class,它有一个 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()
吗?
使用override
关键字:
abstract class Animal
{
protected int numberOfPaws;
public abstract String speak();
public override string ToString(){
return "I have " + numberOfPaws + " paws";
}
}
class Cow : Animal
{
public Cow : base(4) {}
public override String speak(){
return "Moo!";
}
public override string ToString(){
return "I am a Cow " + base.ToString();
}
}
您应该阅读此处:How To: Override the ToString Method
public override string ToString()
{
return "I have " + numberOfPaws + " paws";
}
您错过了 override
关键字
我有一个摘要classAnimal
看起来像这样
abstract class Animal{
protected int numberOfPaws;
public abstract String speak();
public String toString(){
return "I have " + numberOfPaws + " paws";
}
}
然后我有一个派生的 class,它有一个 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()
吗?
使用override
关键字:
abstract class Animal
{
protected int numberOfPaws;
public abstract String speak();
public override string ToString(){
return "I have " + numberOfPaws + " paws";
}
}
class Cow : Animal
{
public Cow : base(4) {}
public override String speak(){
return "Moo!";
}
public override string ToString(){
return "I am a Cow " + base.ToString();
}
}
您应该阅读此处:How To: Override the ToString Method
public override string ToString()
{
return "I have " + numberOfPaws + " paws";
}
您错过了 override
关键字