C# Tips: 静态方法可以被override/hide吗?
来源:互联网 发布:java布尔类型比较 编辑:程序博客网 时间:2024/06/05 14:03
这个话题说起来有些无聊,可能缺乏实际意义,仅从语言层面讨论而已。
静态方法并不受类的初始化的影响,它是针对类的,而不是针对类的实例的,所以它不可能被override。
如果有一个静态方法被标记为override,编译时将会出现以下形式的错误:
A static member '...' cannot be marked as override, virtual, or abstract.
但是静态方法可以被隐藏(hide)。
举例如下:
假设在基类中有一个精通方法定义如下:
public static bool ShouldDisplay(IMessageDataGroup messageDataGroup){ throw new NotImplementedException( "Should not call the base class method. Should be hidden using the 'new' keyword in the inherited class.");}
在子类(继承基类的类)中,可以这样去Hide基类的静态方法:
public new static bool ShouldDisplay(IMessageDataGroup messageDataGroup){ if (messageDataGroup == null) { return false; } if (messageDataGroup.UIType == CommonEnumerator.PAEGroupUIType.Invisible) { return false; } return true;}
仅此而已。在实际应用中用处不大。
0 0
- C# Tips: 静态方法可以被override/hide吗?
- java 静态方法不能被override
- PHP静态函数在子类中可以被override
- 可以重写静态方法吗
- 可以重写静态方法吗?
- 可以重写静态方法吗?
- overload,override,hide
- override, overload, hide
- overload override hide
- C# Tips:在继承中,new 与 override 的区别
- C#方法重写(override)
- C#方法的集成override
- 静态(static)方法重写(override)
- 静态(static)方法重写(override)
- java 静态方法可以覆盖吗
- Java可以重写静态方法吗?
- java静态方法可以重写吗?
- 静态方法可以调用成员变量吗?
- 连连看 算法 2013-12-29
- 重载与重写的区别
- 卡尔曼滤波 -- 从推导到应用(二)
- [LeetCode] Two Sum
- (转载自http://blog.csdn.net/xiaowei_cqu) opencv特征检测器 FeatureDetector
- C# Tips: 静态方法可以被override/hide吗?
- 各种排序算法的实现-10(归并排序的实现)
- 各种排序算法的实现-11(基数排序算法)
- Codeforces Round #222 (Div. 2)
- [LeetCode] First Missing Positive
- how to install oracle linux 5 with paravirtual scsi controler over vmware exsi
- 卡路里
- 阿基米德螺线
- 有一个带头结点的单链表L={a1,b1,a2,b2,...,an,bn},设计一个算法将其拆分成两个带头结点的单链表A和B,正序链表A={a1,a2,a3...,an},逆序链表B={bn,bn-1,