У меня есть четыре класса, которые разделяют некоторое расположение четырех свойств. В настоящее время я устанавливаю базовый класс как abstract
с каждым свойством, обозначенным как virtual
. Затем в каждом из четырех производных классов я переопределяю свойства, которые он использует, и игнорируя остальные.Скрытие свойств в производных классах C#
Проблема заключается в том, что я все еще могу получить доступ ко всем свойствам в каждом из производных классов, независимо от того, переопределил ли я его из свойства abstract virtual
в базовом классе.
У меня такое ощущение, что я приближаюсь к этому с неправильного угла. Есть ли способ явно скрывать или блокировать свойства, или есть лучший подход.
Если вы не хотите, чтобы свойства были доступны в производных классах, то почему они вообще определяют их в базовом классе? –
Поскольку все свойства базового класса используются по крайней мере одним из четырех производных классов, но не для всех. Что я думаю, имеет 4 интерфейса для каждого из свойств. Затем производные классы могут выбирать интерфейсы, которые определяют необходимые ему свойства. – JMS
@ JMs: Как отмечали другие люди, похоже, что дизайн должен быть другим, но у меня слишком мало информации, чтобы можно было предположить, что это должно быть. –