Hallo zusammen,
ich sitze jetzt aktuell an einem Problem und habe das Gefühl, dass ich das irgendwie nicht richtig aufbaue.
Ich habe momentan 3 wesentliche Objekte: Haus, Wohnung, Finanzierung.
Dazu gibts 2 spezielle Ausprägungen (erben) von Haus und Wohnung, nämlich Mehrfamilienhaus (MFH) und Eigentumswohnung (ETW). Eine Finanzierung haben dabei nur das MFH und die ETW.
Das Problem ist jetzt folgendes:
Haus hat Wohnungen von der Klasse ETW (mit Finanzierung).
MFH hat Wohnungen von der Klasse Wohnungen (ohne Finanzierung).
Wenn ich jetzt in der Klasse Wohnungen getLaufzeit() implementiere, möchte ich die Laufzeit der Finanzierung des MFH nutzen und in der Klasse ETW überschreibe ich die Methode in nutze die eigene Finanzierung. In Wohnungen ist aber Haus als Variable drin und die Klasse kennt Finanzierung gar nicht.
Ich bin schon echt am verzweifeln, ich habe also 2x Vererbung die sich kreuzen und möchte es natürlich so generisch wie möglich aufbauen, so dass ich wenig Codedopplung habe und später über die komplette Liste iterieren kann, und getLaufzeit() aufrufe, ohne mir Gedanken über die konkrete Ausprägung der Klasse (Wohnung oder ETW) zu machen.
Ich hoffe, ihr könnt mir helfen
ich sitze jetzt aktuell an einem Problem und habe das Gefühl, dass ich das irgendwie nicht richtig aufbaue.
Ich habe momentan 3 wesentliche Objekte: Haus, Wohnung, Finanzierung.
Dazu gibts 2 spezielle Ausprägungen (erben) von Haus und Wohnung, nämlich Mehrfamilienhaus (MFH) und Eigentumswohnung (ETW). Eine Finanzierung haben dabei nur das MFH und die ETW.
Code:
public class Haus {
private Vector<Wohnung> wohnungen;
}
public class Wohnung {
private Haus haus;
}
public class Finanzierung {
private int laufzeit;
}
public class ETW extends Wohnung {
private Finanzierung finanzierung
}
public class MFH extends Haus {
private Finanzierung finanzierung
}
Das Problem ist jetzt folgendes:
Haus hat Wohnungen von der Klasse ETW (mit Finanzierung).
MFH hat Wohnungen von der Klasse Wohnungen (ohne Finanzierung).
Wenn ich jetzt in der Klasse Wohnungen getLaufzeit() implementiere, möchte ich die Laufzeit der Finanzierung des MFH nutzen und in der Klasse ETW überschreibe ich die Methode in nutze die eigene Finanzierung. In Wohnungen ist aber Haus als Variable drin und die Klasse kennt Finanzierung gar nicht.
Ich bin schon echt am verzweifeln, ich habe also 2x Vererbung die sich kreuzen und möchte es natürlich so generisch wie möglich aufbauen, so dass ich wenig Codedopplung habe und später über die komplette Liste iterieren kann, und getLaufzeit() aufrufe, ohne mir Gedanken über die konkrete Ausprägung der Klasse (Wohnung oder ETW) zu machen.
Ich hoffe, ihr könnt mir helfen