C#继承和构造函数以及overover

时间:2016-08-27 08:08:30

标签: c# inheritance

我正在测试这个程序继承我有3个类(动物,鸸,,袋鼠) 和主要班级。

emu和袋鼠来自Animal类。

当我尝试运行程序得到错误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);

    }
}
Emu Class

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

1 个答案:

答案 0 :(得分:0)

编码中的单词覆盖意味着替换现有方法的实现,即重写先前的方法。

所以在你的情况下,你继承的类没有mamel或bird方法。

不要只是通过一系列主题阅读随机文章。参考书籍或一些教程系列。

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