У меня есть абстрактный класс Customer
, который имеет некоторые атрибуты, общие для всех клиентов (ex id, name, фамилия).
Тогда у меня есть несколько классов, таких как PriorityCustomers
, которые имеют специальные уникальные поля, такие как (высота, ширина), MidPriorityCustomers
и т. Д.
Когда я делаю это:
Customer customer = new PriorityCustomer();
Я не могу получить доступ к приоритетным методам клиента. Когда я пытаюсь сделать это иначе, я не могу создать экземпляр абстрактного класса.
Я использую это потому, что хочу обрабатывать всех клиентов в одном и том же процессе, только те, кто имеет особые потребности, делают для них что-то особенное.
Поэтому мой метод возвращает тип Customer
. Я принимаю неправильное решение с дизайном здесь? Кто-нибудь может что-то предложить?
Забыл упомянуть :
Поля, которые есть у меня в родительском абстрактном классе, у меня нет полей в специальных классах клиентов и наоборот. (Нет высоты, ширины в классе Customer, но в классе PriorityCustomers)