C#中的方法重写(附带实例)
所谓重写(override),是在子类中遵守一定的规则重新定义父类的方法,这样可以扩充父类的功能。
C#程序中,方法重写的规则如下:
【实例 1】重写应用,子类与父类有相同的名称与参数。
关键词 new 主要是在子类的成员与父类成员名称相同时,可以隐藏父类的成员。
【实例 2】使用 new 重新定义父类的方法,重新设计实例 1。
C#程序中,方法重写的规则如下:
- 名称不变、回传值类型不变、参数列表不变;
- 访问权限不可比父类低,例如,父类是 public,子类不可是 protected;
- 建构方法不能重写;
- static方法不能重写。
【实例 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("猫可以走路和跳");
}
}
执行结果为:
动物可以活动
猫可以走路和跳

关键词 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 相同。上述执行后就不会有警告信息。
ICP备案:
公安联网备案: