Почему принцип открытости/закрытости при разработке программного обеспечения реализуется с использованием абстрактных клC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему принцип открытости/закрытости при разработке программного обеспечения реализуется с использованием абстрактных кл

Сообщение Anonymous »



Изображение


Код OCR

с использованием системы; пространство имен класс Программа { static void Main(stringll args) { Транспортное средство v = новый грузовик(); v.Run() } } абстрактный класс Транспортное средство { общественная недействительность Stop () { Console.WriteLinel'Stopped!"); } общественная пустота Fill () { Console.WriteLinel' Оплатить и заполнить..."); } публичный абстрактный недействительный Run(); } класс автомобиля: Транспортное средство { публичное переопределение void Run() { Console.WriteLinel('Машина едет..."); } } класс Грузовик: Транспортное средство { Пожалуйста, посмотрите на код выше. Учитель рассказал нам, что абстрактные классы можно использовать как инструмент реализации принципа открытости/закрытости при разработке программного обеспечения.

Приведенный выше код используется в качестве примера, иллюстрирующего это. Учитель сказал, что общие методы для всех транспортных средств, такие как Stop и Fill, инкапсулированы в класс Vehicle. Различные реализации этих методов достигаются в классах Car и Truck посредством переопределения. Я понимаю этот подход, но не считаю необходимым использовать абстрактные классы. Мы можем добиться того же с помощью регулярных занятий, верно?

Задайте Vehicle как обычный класс, реализуя внутри него только методы Stop и Fill. Затем позвольте Car и Truck наследовать от Vehicle и реализовать соответствующие методы Run. В начале программы используйте

Var v = новый грузовик() или

Грузовик v = новый грузовик() и по-прежнему иметь возможность использовать

v.Run() Я не понимаю необходимости использования абстрактных классов?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»