小编Nic*_*ome的帖子

更新继承的方法C#

这里很新人,开始深入了解C#.

我想知道你是否可以"更新"一个继承的方法.在我的例子中,"Mage"类继承自"Hero".两者都有一个"Shout"方法,但Mage的喊叫应该在屏幕上添加一行文字,但我只得到Hero的一个.

我不想覆盖Hero的Shout,但是"更新它",所以Hero的孩子们可以喊出别的东西.我期待新的让我在使用它的同时修改旧方法,但没有运气.我错过了什么?

public class Hero
{
    protected string _name;

    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }

    public Hero(string n)
    {
        Name = n;
    }

    public virtual void Shout()
    {
        Console.WriteLine("I am {0} and I am a hero! ", Name);
    }
}

public class Mage : Hero
{
    public Mage(string n) : base(n)
    {
        Name = n;
    }

    public new void Shout()
    {
        base.Shout();
        // Next line does not print...
        Console.WriteLine("Also, …
Run Code Online (Sandbox Code Playgroud)

c# inheritance

-3
推荐指数
1
解决办法
157
查看次数

标签 统计

c# ×1

inheritance ×1