Zah*_*med 0 c# inheritance overriding
在C#中,如果我们从类继承,它允许我们覆盖虚方法.
这可以通过不使用virtual方法的关键字来防止,但仍然可以通过使用关键字实现方法来隐藏它new.
反正是否有防止覆盖和阴影而不使其成为私有的方法?
class myBaseClass{
    public void method1(){ //Implementation }
}
class myDerivedClass : myBaseClass{
    public new void method1() { //new Implementation }
}
它总是可以隐藏,但这不是压倒性的 - 它是阴影.理解两者之间的区别非常重要.你不能阻止阴影(虽然允许类本身派生),不.你为什么这么想?你试图阻止什么不良影响?
密封类本身是一个单独的选项:
sealed class MyBaseClass {
    ...
}
就个人而言,我喜欢封印任何我不设计衍生出来的课程,但那是一个不同的(也是有争议的)问题.