【问题标题】:c# abstract class constructor [duplicate]c#抽象类构造函数
【发布时间】:2023-03-04 04:22:02
【问题描述】:

我正在学习 C#。我对抽象类有些担心。抽象类不允许创建实例。为什么 c# 支持抽象类的构造函数。这里的主要目的是什么?

【问题讨论】:

    标签: c# abstract-class


    【解决方案1】:

    因为抽象类仍然可以在其构造过程中包含需要初始化的东西,虽然它不能被直接实例化,但它仍然会被构造为被实例化的继承类型的一部分,因此仍然需要对其自身和关注点的创建控制程度。

    【讨论】:

      【解决方案2】:

      从您的abstract 类派生的类将需要一个实例构造函数来“链接”它们的构造函数。

      正如格兰特所说,抽象类的构造函数可能会设置您的抽象类可能具有的许多(“具体”)状态。

      注意:抽象类型的实例构造函数从不public。由于您的问题中的原因,这将令人困惑。改为protected(或者可能是internal不是 protected internal)或private)。

      如果您没有显式地编写任何实例构造函数,编译器将为您生成一个“默认”构造函数,即抽象的 protected类。

      【讨论】:

        猜你喜欢
        • 2011-08-01
        • 2018-06-10
        • 2015-11-17
        • 2013-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-01
        • 2015-03-20
        相关资源
        最近更新 更多