密封抽象类在 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;
}
}
谢谢
此代码无法编译。类不能是抽象和密封的。这没有任何意义:
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
类,这是非法的
因此,当类被密封和抽象时,它可以被扩展并实例化。
不,恰恰相反;它既不能被继承也不能被实例化......