Witam, chcę napisać prostą aplikacje konsolową (sklep) gdzie są użytkownik i administrator. Chciałbym by ktoś sprawdził czy to ma sens jeśli chodzi o OOP.
Główną klasą w tym systemie jest Konto. Jest to klasa abstrakcyjna z której dziedziczą klasy Użytkownik i Administrator. Klasa Konto posiada konstruktor, który dziedziczą (i rozszerzają o własne pola) klasy potomne i metodę abstrakcyjną loguj( gdyż inaczej loguje się użytkownik a inaczej admin ). Użytkownik ma metody kupowania i płacenia a Admin to dodawanie/usuwanie konta. Klasa Program w której wybiera się konto admina lub usera i konstrukcja switch jako menu do zarządzania danym kontem.
Pomijając fakt ze taki konsolowy sklep nie sensu to czy jest to poprawne z punktu widzenia programowania obiektowego? Czy można inaczej rozłożyć klasy( konto, user, admin, może jakieś inne? ) i zastosować dziedziczenie by nie powielać kodu i korzystać z OOP?