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);
    }
}

c#继承、构造函数和覆盖

代码中的override一词表示替换现有方法的实现,即覆盖之前的方法。

在你的例子中,你要继承的类没有mamel或bird方法。

不要随便看文章,要按主题系列去看。参考一本书或一些教程系列。

检查是否可以通过c# pdf版本的CLR 或者你也可以参考我们正在进行的教程系列在chezycode