请考虑下面的设计:密封抽象类的属性
public interface IBook
{
string Author { get; set; }
string Title { get; set; }
}
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; }
}
class Book : BaseBook
{
}
class SuperBook : Book
{
public override string Author
{
get
{
Console.WriteLine("SuperBook GET!");
return base.Author;
}
set
{
Console.WriteLine("SuperBook SET!");
base.Author = value;
}
}
public string Title { get; set; }
}
有什么办法使密封防止财产在派生类中被重写的BaseBook
基类的Title
财产(如Book
和SuperBook
类)?
你为什么要这样的事情?有什么特别的原因让用户不应该被允许覆盖你的财产? – 2011-05-18 13:11:33