Non capisco perché car e Gun siano classi astratte e non interfacce.
Secondo me dovresti rinominarli in ICar e IGun e creare un nuovo pacchetto di interfacce all'interno di myfactory.
Tips: di solito le classi con metodi che hanno solo firme senza implementazione possono essere rifattorizzare in interfacce e se serve una implementazione ulteriore specifica viene creata una classe o un'astrazione dell'interfaccia.
Non capisco perché car e Gun siano classi astratte e non interfacce.
Secondo me dovresti rinominarli in ICar e IGun e creare un nuovo pacchetto di interfacce all'interno di myfactory.
Tips: di solito le classi con metodi che hanno solo firme senza implementazione possono essere rifattorizzare in interfacce e se serve una implementazione ulteriore specifica viene creata una classe o un'astrazione dell'interfaccia.