Если у меня есть родительский класс и ребенок, которые выглядят так
public class Animal
{
public string Name { get; set; }
}
public class Dog : Animal
{
public string Name
{
get
{
return "Dog";
}
}
}
Код скомпилируется, но почему C # позволяет мне это делать? Если экземпляр Dog добавлен в список Animal, например, его имя можно изменить, даже если оно установлено только для чтения.
Я не уверен, что мое понимание того, как работает наследование, неверно или это не лучший способ установить поле только для чтения?