[VB.NET]派生类用overloads关键字覆盖基类方法有什么意义?

本文探讨了C#中overloads与shadows关键字的区别及其应用场景。解释了shadows用于方法隐藏的意义,以及overrides用于实现多态的方式。通过具体例子说明了不同关键字如何影响程序的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VB.NET源码-156个实用实例哦…… 派生类用overloads关键字覆盖基类方法有什么意义?
跟shadows比有何优点(缺点)
__________________________________________________________________________
再补充一个,如果overloads可以重写基类方法,还要overrides干嘛?
__________________________________________________________________________

__________________________________________________________________________
为什么要有这个shadows,主要是因为程序版本的问题,一般而言,应该现有父类才能有派生类,但使用派生类者当然可以定义自己的方法,比如sayHello,但后来父类发现sayHello这个方法蛮好,也取了同名的方法(父类可不知道它的派生类已经用了这个方法名),那么,显然,如果你用父类的引用调用这个sayHello方法的时候最好还是调用父类自己的,而不是派生类的(这才符合你的程序的本意),当然这也是C#默认的处理方式,但这样编译器好歹在编译的时候会给你一个警告.

我们加上shadows的意思是告诉编译器 我知道我在干什么,你别来烦我 ,所以编译器就不哼了

同理这个shadows出来的方法只有子类对象自己能用的到,所以无论你是使用基类的引用还是接口的引用别人都访问不到.

而使用overrides则表明子类方法对父类方法的重写,这也就是我们经常所说的多态

有兴趣可以看看这个
http://www.microsoft.com/china/community/Column/6.mspx
__________________________________________________________________________
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值