Objekterstellung bei der Vererbung

achalisma

Mitglied
Hi Leute, ich habe ein kleines Problem in der Codierung meines Programms 😀 In meiner Oberklasse habe ich einen Konstruktor mit verschiedenen Parametern. Diese Oberklasse sollte ich dann in zwei Unterklassen unterteilen, also etwas vererben. In beiden Unterklassen wurde also der Konstruktor vererbt und nun soll ich in einer anderen Klasse Objekte der Unterklassen erstellen. Allerdings brauche ich bei der einen Unterklasse andere Parameter als die, die vererbt wurden. Jedoch soll die Vererbung erhalten bleiben, also bspw. "Schule" extends "Gebäude" und dann soll ein neues Objekt "Schule" in einer anderen Klasse erstellt werden. Die Klasse "Krankenhaus" würde auch "Gebäude" extenden, aber wenn ich ein Objekt "Krankenhaus" in der gleichen Klasse erstelle, wo auch das Objekt "Schule" erstelle, soll "Krankenhaus" andere Parameter haben, obwohl beide von der Oberklasse "Gebäude" stammen. Wie ist das zu bewerkstelligen?

Ich hoffe das war verständlich und ich danke euch im voraus 😀
 
also ich stell mir mal folgendes Beispiel vor. Geht das in die Richtung die du meinst?
Java:
public class Gebaeude {

    private String adresse;

   public Gebaeude(String adresse) {
       this.adresse = adresse;
   }
}


public class Schule extends Gebaeude {
 
    private String name;

    public Schule(String adresse, String name) {
        super(adresse);
        this.name = name;
    }
}

public static void main(String[] args) {
    Gebaeude s = new Schule("Teststrasse 1", "Schule halt");
}
 
Genau, nur dass es dann quasi noch ein Krankenhaus gibt, dass die gleiche Methode ausführt wie die Schule, aber die Parameter des Gebäudes behält und nicht extra Parameter nutzt. Geht das irgendwie oder muss dann eine neue Methode extra für die andere Unterklasse geschrieben werden?
 
Lassen wir es getRaueme sein. Außerdem würde die Gebäude-Klasse mehrere Parameter haben also evtl. Adresse, Räume und Ort oder so. Dann würde Schule alle Parameter übernehmen und eine Variable Name hinzufügen und mit den 4 Variablen ein Objekt erstellen. In der Unterklasse Krankenhaus soll es aber anders sein. Sie soll nur einen oder zwei (ABER NICHT ALLE) Parameter erben und noch eine Variable für sich hinzufügen wie bspw. patientenNummer. Davon soll dann auch ein Objekt erstellt werden. Und diese beiden Objekte rufen die gleiche Methode (getRaueme) auf. Funktioniert das alles so?
 
Um es an einem Beispiel festzumachen:

Angenommen du hast wie gehabt das Gebäude und Schule, Krankenhaus und Firmensitz sollen erben.
Ich verstehe das so, dass dein Gebäude nun z.B. das Attribut "Träger" besitzt, der so erstmal nur im öffentlichen Bereich Sinn macht - also von Schule und Krankenhaus geerbt werden soll, aber nicht von Firmensitz. Hier wäre es sinnvoll den Träger nicht in Gebäude zu definieren, sondern einer Klasse ÖffentlichesGebäude. ÖffentlichesGebäude hätte den Träger und würde von Gebäude erben. Schule und Krankenhaus erben von ÖffentlichesGebäude. Firmsitz kann direkt von Gebäude erben oder ähnlich dem ÖffentlichenGebäude ein PrivatGebäude sein.
 

Neue Themen


Zurück
Oben