现在的位置: 首页 > 综合 > 正文

C#中重载方法与重写方法的区别

2013年12月02日 ⁄ 综合 ⁄ 共 686字 ⁄ 字号 评论关闭

在C#面向对象编程中,重写方法和重载方法是两个重要的概念,但我们有时会混淆这些概念,甚至一些参考书和网络上都弄错,现在对这两种概念澄清一下。

1.重载方法

在C#中,重载方法是指在类中有两个或两个以上的方法,但各个方法的参数类型、参数个数或顺序不同,例如下面类中定义了add方法并重载:

class Addition
    {
        public int add(int x)
        {
            return x + x;
        }
        public int add(int x, int y)
        {
            return x + y;
        }
        public float add(float x, float y)
        {
            return x + y;
        }
        public float add(int x, float y)
        {
            return x + y;
        }
    }

注意:在重载方法时,方法的签名不能相同,否则会出错。

2.重写方法

在C#中,如果一个实例方法的声明中含有override修饰符,则该方法称为重写方法,重写方法用相同的方法签名覆盖所继承的虚方法或抽象方法,例如下面的继承类重写了基类的静态方法与虚方法:

public abstract class Teacher
    {
        public abstract void Name();
        public virtual void Address()
        {
            Console.WriteLine("这是基类的虚方法!");
        }
    }
    public class Myteacher:Teacher
    {
        public override void Name()
        {
            Console.WriteLine("重写基类的抽象方法!");
        }
        public override void Address()
        {
            Console.WriteLine("重写基类的虚方法!");
        }
    }

 

抱歉!评论已关闭.