密封抽象类在 OOP 和 C# 中的真正用途是什么?

本文关键字:是什么 抽象类 OOP 密封 | 更新日期: 2023-09-27 18:34:17

我得到了密封抽象类的示例代码。 我只知道密封抽象类有什么用。 任何必须扩展的抽象和密封关键字阻止扩展类。 因此,当类是密封的和抽象的时

,它可以被扩展和实例化。 那么密封抽象类的真正用途是什么呢?

有人告诉我,这将解决静态类的目的。 如果可能的话,请讨论使用密封抽象类,其中包含很少的示例代码和场景,当一个类需要设计为密封抽象类时。

sealed abstract class BaseBook : IBook
{
private string _title;
public virtual string Author
{
    get
    {
        Console.WriteLine("Base book GET!");
        return _title;
    }
    set
    {
        Console.WriteLine("Base book SET!");
        _title = value;
    }
}
public string Title
{
    get;
    set;
}
}

谢谢

密封抽象类在 OOP 和 C# 中的真正用途是什么?

此代码无法编译。类不能是抽象和密封的。这没有任何意义:

CS0418 - 'BaseBook': an abstract class cannot be sealed or static

MSDN: It is not permitted to use the abstract modifier with a sealed class.

链接: http://msdn.microsoft.com/en-us/library/88c54tsw%28v=vs.71%29.aspx

希望能回答你的问题。

C# 不允许你拥有一个既密封又抽象的类。 它不会编译。 对于静态类(仅具有静态方法的类),请将其标记为静态以防止意外实例化。

根本没有用,因为它不存在。

首先,你不能在 C# 中声明sealed abstract类,这是非法的

因此,当类被密封和抽象时,它可以被扩展并实例化。

不,恰恰相反;它既不能被继承也不能被实例化......