资讯动态

C#重载和重写的区别

发布时间:2026/10/10 6:32:45 来源:尧图企业网站定制
重载Overload就是在同一个类中方法名相同参数列表不同。参数列表不同包括参数的个数不同、参数类型不同等。重载特征I. 方法名必须相同II. 参数列表必须不相同与参数列表的顺序无关III. 返回值类型可以不相同重载用于在给定了参数列表和一组候选函数成员的情况下选择一个最佳函数成员来实施调用。以下是一个重载示例public void test(int x, int y){}public void test(int x, ref int y){}public void test(int x, int y, string a){}重写Override就是子类重写父类的方法在调用的时候子类的方法会覆盖父类的方法也就是会调用子类的方法。在父类中的方法必须有修饰符virtual而在子类的方法中必须指明override。重写格式父类中public virtual void myMethod(){}子类中public override void myMethod(){}重写以后用父类对象和子类对象访问myMethod()方法结果都是访问在子类中重新定义的方法父类的方法相当于被覆盖掉了。子类中为满足自己的需要来重复定义某个方法的不同实现。通过使用override关键字来实现覆写。只有虚方法和抽象方法才能被覆写。重写要求三相同相同的方法名称相同的参数列表相同的返回值类型总结重载与重写是面向对象编程中两个容易混淆的概念核心区别与使用要点如下核心区别重载发生在同一个类中方法名相同、参数列表不同重写发生在子类与父类之间方法名、参数列表和返回值类型都必须相同。重载不能仅靠返回值区分仅返回值类型不同而参数列表相同不构成合法的重载编译器无法据此区分两个方法。重写必须满足三相同方法名称相同、参数列表相同、返回值类型相同且父类方法需声明为virtual子类方法需使用override关键字。重写范围受限只有虚方法和抽象方法才能被重写普通方法无法被子类覆写。使用建议当需要为同一功能提供多种参数形式的入口时优先选择重载当子类需要改变父类方法的默认行为、实现多态时优先选择重写。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑