首页 > 编程笔记 > C#笔记 阅读:16

C#中的方法重写(附带实例)

所谓重写(override),是在子类中遵守一定的规则重新定义父类的方法,这样可以扩充父类的功能。

C#程序中,方法重写的规则如下:
【实例 1】重写应用,子类与父类有相同的名称与参数。
Animal ani = new Animal();
Cat cat = new Cat();
ani.Moving();
cat.Moving();

public class Animal
{
    public void Moving()
    {
        Console.WriteLine("动物可以活动");
    }
}

public class Cat : Animal
{
    public void Moving()
    {
        Console.WriteLine("猫可以走路和跳");
    }
}
执行结果为:

动物可以活动
猫可以走路和跳

上述程序中父类有 Moving() 方法,子类有相同的方法 Moving(),虽然第 4 行与第 5 行调用时可以执行各自的方法,但如果点选 Visual Studio 窗口左下方的错误列表字段,仍可以看到警告信息,建议使用 new 关键词。


关键词 new 主要是在子类的成员与父类成员名称相同时,可以隐藏父类的成员。

【实例 2】使用 new 重新定义父类的方法,重新设计实例 1。
Animal ani = new Animal();
Cat cat = new Cat();
ani.Moving();
cat.Moving();

public class Animal
{
    public void Moving()
    {
        Console.WriteLine("动物可以活动");
    }
}

public class Cat : Animal
{
    new public void Moving()
    {
        Console.WriteLine("猫可以走路和跳");
    }
}
执行结果与实例 1 相同。上述执行后就不会有警告信息。

相关文章