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

时间:2012-05-15 14:26:54

标签: c# oop

我得到了密封抽象类的示例代码。我只是知道密封抽象类的用途是什么。无论什么是必须扩展的抽象和密封关键字阻止扩展类。所以当课堂密封时抽象然后它可以扩展和实例化。那么密封抽象类的真正用途是什么?

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

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;
}
}

感谢

5 个答案:

答案 0 :(得分:9)

此代码无法编译。一堂课不能抽象和封印。这没有任何意义:

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

答案 1 :(得分:6)

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

希望能回答你的问题。

答案 2 :(得分:5)

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

答案 3 :(得分:2)

因为它不存在所以没有用处。

答案 4 :(得分:2)

首先,您无法在C#中声明sealed abstract类,这是非法的

  

所以当课堂密封时抽象然后它可以扩展并实例化

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

相关问题