override实现多态,调用取决于对象实际类型;new实现方法隐藏,调用取决于引用类型。override要求基类方法为virtual/abstract/override,new可隐藏任意实例方法,且需显式声明以避免警告。

在C#中,override 和 new 关键字都用于处理基类和派生类中方法同名的情况,但它们的行为有本质区别:一个是方法重写(多态),另一个是方法隐藏。理解这两者的差异对正确使用面向对象特性至关重要。
当在基类的方法使用 virtual 修饰,在派生类中用 override 重新实现该方法时,就发生了方法重写。这使得调用哪个方法取决于对象的实际类型,而不是引用类型,从而实现运行时多态。
示例:
Krikey AI
113
查看详情
class Animal
{
public virtual void Speak()
{
Console.WriteLine("Animal speaks");
}
}
class Dog : Animal
{
public override void Speak()
{
Console.WriteLine("Dog barks");
}
}
调用代码:
Animal a = new Dog(); a.Speak(); // 输出: "Dog barks"
尽管变量 a 是 Animal 类型,但实际对象是 Dog,因此调用的是 Dog 中重写的 Speak 方法。这就是多态的体现。
使用 new 关键字可以在派生类中定义一个与基类同名的方法,但不进行重写,而是“隐藏”基类方法。此时调用哪个方法取决于引用的类型,而非对象的实际类型。
示例:
class Animal
{
public void Speak()
{
Console.WriteLine("Animal speaks");
}
}
class Cat : Animal
{
public new void Speak()
{
Console.WriteLine("Cat meows");
}
}
调用代码:
Animal a = new Cat(); a.Speak(); // 输出: "Animal speaks" Cat c = new Cat(); c.Speak(); // 输出: "Cat meows"
虽然 Cat 对象有两个 Speak 方法,但通过 Animal 类型引用调用时,使用的是基类版本。只有通过 Cat 类型引用才能访问隐藏后的新方法。
如果希望子类改变父类方法的行为,并让所有使用者都看到这个改变,使用 override。
如果只是想在子类中提供一个同名但独立的方法,且不希望影响原有调用逻辑,使用 new。
基本上就这些。掌握 override 和 new 的差异,能避免运行时行为不符合预期的问题,写出更清晰可靠的继承结构。
以上就是C# override和new关键字的用法 - 方法重写与方法隐藏的差异的详细内容,更多请关注其它相关文章!
# 如何处理
# 庐江应急演练网站建设
# 网站建设空间构成海报
# 服装营销推广阶段是什么
# 青岛seo优化企业
# 展览营销推广案例
# 山东seo优化排名公司
# 罗源专业seo哪家好
# 正定海外网站推广公司有哪些
# 丛台区营销推广招聘网站
# 朝阳网站建设办理流程
# 开源
# c# new
# 如何使用
# 面向对象
# 的是
# 类中
# 子类
# 死锁
# 多态
# 重写
# speak
# c#
# 区别
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
Excel如何制作月度销售统计图_Excel动态图表制作与控件应用
OpenWeatherMap API:通过城市名称获取天气预报数据指南
J*aScript桌面应用_Electron多进程架构实战
PPT智能排版生成入口 免费PPT内容自动生成平台
一点万象签到领积分指南
顺丰快递单号查询寄件人 顺丰寄件人查询入口
魔法祈幻界兑换码礼包大全
圆通快递包裹轨迹查询 圆通速递快件实时位置跟踪
抖音号升级成企业资质怎么弄?有什么好处?
抖音号升级企业号怎么改名字?升级企业号有哪些好处?
Golang如何初始化module项目_Golang module init使用说明
视频转蓝光m2ts格式
Retrofit根路径POST请求:@POST("/") 的应用与解析
《健康大兴》注册方法介绍
PySimpleGUI中实现键盘按键与按钮事件绑定教程
《微信》视频号原创声明开启方法
使用Python和GBGB API高效抓取指定日期范围和赛道比赛结果教程
PointNet++语义分割模型中类别变更引发的断言错误及标签处理策略
苹果如何下载nanobanana
知音漫客官网首页入口_知音漫客热门漫画推荐
5G和6G的连接密度有什么区别 6G每平方公里能连接多少设备
百度竞价WAP显示PC链接问题
CSS布局中意外顶部空白的调试与解决:深入理解padding-top
更换小红书群背景怎么换?小红书群规则怎么设置?
Firefox OS应用开发:解决XMLHttpRequest跨域请求阻塞问题
《全民k歌》音乐怎么下载到本地2025
《火影忍者:木叶高手》快速升级攻略
《环球网校》设置报考省市方法
iSpring三分屏制作教程
Magento 2 产品保存事件中安全更新属性的最佳实践
如何修改Windows截图的默认保存位置_告别C盘让桌面更整洁【教程】
百度小说看书时如何翻页_百度小说手动翻页与自动翻页设置
在J*a中如何实现类的继承与方法重用_OOP继承方法重用技巧分享
江苏大剧院会员卡购买步骤
DeepSeek超全面指南:入门必看
英雄联盟争者留名活动介绍
抖音评论无法发送如何修复 抖音评论功能操作指南
HTML Canvas文本样式定制指南:解决外部字体加载与应用难题
mysql如何回滚事务_mysql ROLLBACK事务回滚方法
Linux如何自动分析系统异常日志_Linux日志智能检测
mysql中外键约束如何使用_mysql FOREIGN KEY操作
跨语言测试实践:使用Python Selenium测试现有J*a Web项目
ToDesk远程摄像头功能使用方法_ToDesk远程视频画面查看设置教程
sf漫画官网登录入口直达_sf漫画官方正版网址
《合金装备4》有望推出重制版!制作人发话了
圆通快递官方入口不需要登录 在线查询入口快速查询
电脑桌面图标怎么变大变小_Windows个性化设置第一课【新手入门】
发博客与长微博技巧
抖音网页版官方链接 抖音网页版官网链接入口
修复UI元素交互障碍:从“开始”按钮到信息框的平滑过渡实现
2025-12-04
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。