繁体   English   中英

C#继承与构造函数和覆写

[英]C# inheritance and constructors and overide

我正在测试此程序的继承性,我有3类(动物,e,袋鼠)和主类。

mu和袋鼠源自动物类。

当我尝试运行出现错误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);

    }
}

mu类

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

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

因此,在这种情况下,您要继承的类没有mamel或bird方法。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM