3

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

有人告诉我这将解决静态类的目的。如果可能,请在需要将类设计为密封抽象类时,用少量示例代码和场景讨论密封抽象类的使用。

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

谢谢

4

5 回答 5

9

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

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

于 2012-05-15T14:30:43.557 回答
7

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

希望这能回答你的问题。

于 2012-05-15T14:30:21.343 回答
5

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

于 2012-05-15T14:30:28.830 回答
2

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

于 2012-05-15T14:31:27.503 回答
2

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

所以当类被密封和抽象时,它可以被扩展也可以被实例化

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

于 2012-05-15T14:32:03.527 回答