这是我第一次上课,所以请原谅我的无知。
我有一个 Pet 类,它是我的基类。我有两个儿童班,狗和猫。我想要做的是让 Cat 和 Dog 方法通过说“Woof!”来覆盖 Pet 方法。和“喵!” 而不是说话。然后以另一种形式,我必须在按下按钮时打印信息(姓名、颜色和他们说话)。
class Pet
{
protected string name, color, food;
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public string Color
{
get
{
return color;
}
set
{
color = value;
}
}
public string Food
{
get
{
return food;
}
set
{
food = value;
}
}
public void speak(string s)
{
s = "Speak";
MessageBox.Show(s);
}
public Pet(string name, string food, string color)
{
//Constructor
this.Food = food;
this.Name = name;
this.Color = color;
}
class Dog : Pet
{
public Dog(string name, string food, string color)
: base(name, food, color)
{
}
protected override void speak()
{
}
}
}
(省略了猫,因为它几乎和狗一样)
我不断收到错误“错误 1 'Lab12.Cat.speak()': 在覆盖 'public' 继承成员 'Lab12.Pet.speak()' 时无法更改访问修饰符”
我究竟做错了什么?我知道它与某处的保护级别有关,我不断将事情从公共切换到受保护或私有,但它没有解决任何问题。帮忙,有人吗?