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 相同。上述执行后就不会有警告信息。