我不太确定在抽象类和属性中哪个更好看,或者在什么情况下应该使用抽象类和属性,何时应该使用非抽象属性。我来尝试举一个简单的例子。假设我有以下代码:
abstract class Human
{
public GenderType Gender { get; set; }
public string Name { get; set; }
public Date Born { get; set; }
public bool IsNerd { get; set; }
abstract public void Speak();
abstract public void Sleep();
abstract public void AnoyingPeopleOnStackOverflow();
//... so on
}
class Peter : Human
{
//Peter is special, he got a second name
//But thats all, everything else is the same as like on other humans
public string SecondName { get; set; }
//...override abstract stuff
}
这样做可以吗?据我所理解,如果不想覆盖属性,则不必使用抽象属性。在这种情况下,只需像 Speak
、Sleep
这样的方法应该是抽象的即可。
那么,如果这样可以,什么情况下应该使用抽象属性呢?