Не обязательно, чтобы для каждого дизайна вы использовали класс Abstarct
или определяли виртуальные методы.
В основном ключевое слово virtual
используется для изменения метода, свойства, индексатора или объявления события и позволяет переопределять его в производном классе, а ключевое слово Abstarct позволяет создавать классы и члены класса исключительно для целей наследования. —Определить признаки производных неабстрактных классов
В вашем случае вы можете иметь абстрактный класс CartItem
, который работает как базовый класс для всех типов предметов, которые вы должны поддерживать в своей корзине. Все типы предметов будут наследовать класс CartItem
. Вы не можете напрямую создать экземпляр класса CartItem
, но вы можете использовать его как ссылку для достижения полиморфизма.
Вы можете определить некоторые конкретные методы / свойства, такие как ItemId
, ItemName
, Price
и т. Д. В классе CartItem
, которые являются общими для всех типов элементов, а также вы можете определить некоторые из методов виртуально для которого у вас есть реализация по умолчанию, но дочерние классы могут переопределить реализацию.