Vererbung Frage zum Klassenaufbau mit Vererbung

dflasjjs

Bekanntes Mitglied
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.



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 🙂
 
Ich habe momentan 3 wesentliche Objekte: Haus, Wohnung, Finanzierung.
Achtung auf die Formulierung aufpassen 😉
Es handelt sich dabei um drei Klassen. Von diesen 3 Klassen kannst du beliebig viele Objekte erstellen.

nämlich Mehrfamilienhaus (MFH) und Eigentumswohnung (ETW). Eine Finanzierung haben dabei nur das MFH und die ETW.
Kleiner Tipp: Anstatt diese Namen abzukürzen verwende doch die wirklichen Namen für die Klassen!
Sie sind nicht lange und auch nicht kompliziert und um einiges verständlicher als die Abkürzungen.

Das Problem ist jetzt folgendes:

Haus hat Wohnungen von der Klasse ETW (mit Finanzierung).
MFH hat Wohnungen von der Klasse Wohnungen (ohne Finanzierung).
Deine Aussagen sind nicht korrekt.
Ein Haus hat eine beliebige Anzahl an Wohnungs Objekten (ob diese nun eine ETW oder eine normale Wohnung sind ist dabei egal).
Auch das MFH ist einfach nur ein Haus mit einer beliebigen Anzahl an Wohnungsobjekten (ob diese nun eine ETW oder normale Wohnung sind ist dabei wieder egal).

Das MFH hat selber eine Finanzierung, das normale Haus nicht. Die Wohnungen in den Häusern können eine Finanzierung haben oder auch nicht.
Hier solltest du mal genau definieren wie es nun sein darf bzw. soll!
 

Zurück
Oben