【发布时间】:2014-04-19 02:51:18
【问题描述】:
如果一个类没有任何虚拟方法,我认为继承一个类不会影响任何没有将实例显式引用为子类实例的代码,即
Subclass obj = new Subclass()
而不是
BaseClass obj = new SubClass()
那么,为什么sealed 会存在呢?
如果您没有将任何内容声明为virtual(我认为在密封类中这样做没有意义),那么它所阻止的只是(例如)ListViewItem 之类的东西,它存储了一些关于它所代表的内容的额外信息对于“知道”该信息存在的代码,与重写方法不同,这对未考虑该子类编写的代码没有影响。
【问题讨论】:
-
还有更多“显而易见”的答案,但是如果一个类直接在 CLR 之上而不是在 C# 代码中实现并且扩展它会破坏它呢?
标签: c# class oop inheritance sealed