密封类和私有类有什么区别?

0 .net c# oop class sealed

我知道你不能从一个类继承一次sealed被使用,但我很困惑这两者之间有什么区别:privatesealed

private如果我们不想继承它们而不是整个类,我们不能使基类成员吗?使用的意义sealed class何在?

Roh*_*del 5

private: private将可见性限制在一个范围内。在类中声明私有类意味着从类外部无法看到子类。对于方法和属性也是如此——它们可以在类中看到,但不能被任何消费者或继承者看到。 private关键字用于声明类。

密封:如果一个类被声明为sealed,则意味着您不能从该类继承。sealed当类是库操作的内部类时,可以使用类,或者为什么您不希望该类被覆盖,因为它可能会影响功能。 sealed关键字用于声明类

例子

public class Parent {
       // some thing at here
       private readonly SubClass sc;


       // ctor
       public Parent () {
              sc = new SubClass();
       }


       public string foo () {
             return sc.bar();
       }


       private class SubClass {
             // have some thing here
            public string bar() {
                 //..............
                 return "...........";
            }
       }
}
Run Code Online (Sandbox Code Playgroud)