Jens Hibbeler
Mitglied
Hallo,
ich habe ein kleines Objektorientiertes Design Problem:
Ich habe drei Klassen:
Ein Interface mit virtuellen Methoden, eine Klasse die von diesem Interface erbt und die Methoden implementiert und noch eine weitere Klasse, die von der zuletzt genannten erbt und die dort implementierten Methoden nutzen soll.
Interface
Header
Erbende Klasse
Header:
Von der PersistAdapter erbende Klasse
Header
Warum kann ich die in der Klasse PersistAdapter implementierten Methoden nicht nutzen und muss sie immer in der Klasse PersistAdaptArtikel Klasse neu implementieren? Ist es immer so, dass jede Klasse in der Vererbungshierachie, die Methoden des Basisinterfaces aufs neue implementieren muss? Diese sind doch schon in der Abgeleiteten Klasse implementiert.
Gibts da eine bessere Lösung?
Viele Grüße aus Hamburg,
Jens
ich habe ein kleines Objektorientiertes Design Problem:
Ich habe drei Klassen:
Ein Interface mit virtuellen Methoden, eine Klasse die von diesem Interface erbt und die Methoden implementiert und noch eine weitere Klasse, die von der zuletzt genannten erbt und die dort implementierten Methoden nutzen soll.
Interface
Header
Code:
class PersistierungsInterface
{
public: virtual Link ChangeAntwortHdl ( const Link& neuerAntwortHdl, ArtikelPosition *artP)=0 ;
};
Erbende Klasse
Header:
Code:
class PersistAdapter: public PersistierungsInterface
{
public :Link ChangeAntwortHdl ( const Link& neuerAntwortHdl, ArtikelPosition *artP);
};
Von der PersistAdapter erbende Klasse
Header
Code:
class PersistAdaptArtikel : public PersistAdapter, public PersistierungsIntArtikel
{
public :bool bestandsAnfrage(Link & nAntwortHdl, ArtikelPosition *artP);
public :Link ChangeAntwortHdl ( const Link& neuerAntwortHdl, ArtikelPosition *artP);
};
Warum kann ich die in der Klasse PersistAdapter implementierten Methoden nicht nutzen und muss sie immer in der Klasse PersistAdaptArtikel Klasse neu implementieren? Ist es immer so, dass jede Klasse in der Vererbungshierachie, die Methoden des Basisinterfaces aufs neue implementieren muss? Diese sind doch schon in der Abgeleiteten Klasse implementiert.
Gibts da eine bessere Lösung?
Viele Grüße aus Hamburg,
Jens