Tach!
Redundanzen vermeiden: Eine Klasse, die einen Artikel in einem Shop präsentiert und das Einfügen in den Warenkorb ermöglicht, schreibe ich nur einmal, alles was die Artikel unterscheidet wird über Attribute geregelt.
Wenn so unterschiedliche Dinge wie Shop-Artikel nur ein paar wenige Merkmale gemeinsam haben sollen, wäre statt einer Basisklasse eher ein Interface angebracht, das diese Merkmale definiert, die für den Warenkorb interessant sind.
dedlfix.