抽象クラスとプロパティで実際に使用するかどうか、抽象クラス以外のプロパティをいつ使用するのかよくわかりません。私は簡単な例を作ろうとします。私はこれを持っているとしましょう:抽象的なプロパティを使用する時期と使用しない時期はわかりません
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)私の個人的な気持ちは、それが「契約」の一部である必要がある場合、抽象クラスで宣言することが適切であるということです。言い換えれば、あなたがやったことは完全にOKだと思います。 IMHO ... – paulsm4
@ paulsm4あなたはC#でもそうすることができます。 –