Меняет ли получить;задавать;свойства в полях подкласса нарушают принцип подстановки Лискова? - PullRequest
0 голосов
/ 21 марта 2019

Если у меня есть родительский класс и ребенок, которые выглядят так

public class Animal
{
    public string Name { get; set; }
}
public class Dog : Animal
{
    public string Name 
    {
       get
       {
           return "Dog";
       }
     }
}

Код скомпилируется, но почему C # позволяет мне это делать? Если экземпляр Dog добавлен в список Animal, например, его имя можно изменить, даже если оно установлено только для чтения.

Я не уверен, что мое понимание того, как работает наследование, неверно или это не лучший способ установить поле только для чтения?

...