c#继承、构造函数和覆盖
本文关键字:覆盖 构造函数 继承 | 更新日期: 2023-09-27 18:04:21
我正在测试这个程序的继承,我有3个类(动物,鸸鹋,袋鼠)和主类。
鸸鹋和袋鼠源自动物类。
当我试图运行程序得到错误Emu.Bird(), Kangaroo.Mamel()是不合适的方法发现覆盖。我是通过一个随机的教程来做的,不确定"覆盖"以及它到底是做什么的。
static void Main(string[] args)
{
Emu e = new Emu("Emu","Brown", "is a bird");
Console.WriteLine();
Kangaroo k = new Kangaroo("Kangaroo","Dark Brown", "Is a mamel" );
Console.ReadLine();
}
头足类动物 class Animal
{
public string name;
public string colour;
public Animal(string MyName,string MyColour)
{
name = MyName;
colour = MyColour;
}
public virtual void Show()
{
Console.WriteLine("Name: "+ name);
Console.WriteLine("Colour: "+ colour);
}
}
鸸鹋类
class Emu:Animal
{
public string bird;
public Emu(string name,string colour, string eBird) : base(MyName,MyColour)
{
bird = eBird;
}
public override void Bird()
{
base.Show();
Console.WriteLine(bird);
}
}
袋鼠类 class Kangaroo:Animal
{
public string mamel;
public Kangaroo(string name,string colour, string Mamel) : base(MyName,MyColour)
{
mamel = Mamel;
}
public override void Mamel()
{
base.Show();
Console.WriteLine("Is a bird or Mamel ? " + mamel);
}
}
代码中的override一词表示替换现有方法的实现,即覆盖之前的方法。
在你的例子中,你要继承的类没有mamel或bird方法。
不要随便看文章,要按主题系列去看。参考一本书或一些教程系列。
检查是否可以通过c# pdf版本的CLR 或者你也可以参考我们正在进行的教程系列在chezycode