我真的不確定什麼看起來更好,什麼時候我真的在抽象類和屬性中使用,何時使用非抽象屬性。我會盡量舉個簡單的例子。假設我有這個:不知道什麼時候使用抽象屬性,什麼時候不使用
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
等這樣的方法應該是抽象的。
現在,如果這是好的,什麼時候會或應該使用抽象屬性?
「什麼時候會或應該使用抽象屬性」---當您想要聲明子類必須提供特定的方法實現時 – zerkms
1)如果這是Java,則可能沒有任何問題。你可能只是使用「界面」。這基本上是你在C#中做的,不是嗎?2)我個人的感覺是,如果它需要成爲「契約」的一部分,那麼在你的抽象類中聲明它是恰當的。換句話說,我認爲你所做的完全沒問題。恕我直言...... – paulsm4
@ paulsm4你也可以用C#來做到這一點。 –