Я не совсем уверен, что выглядит лучше или когда я действительно использую абстрактные классы и свойства, или когда использовать не абстрактные свойства. Я попытаюсь сделать простой пример. Скажем, у меня есть это:
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
и т.д. Должны быть абстрактными.
Теперь, если это нормально, когда мне или нужно использовать абстрактное свойство?