OOP Klassenimport "vererben"

  • Themenstarter Themenstarter Tuxifant
  • Beginndatum Beginndatum
T

Tuxifant

Gast
Hallo,

ich habe mehrere Klassen, die wie im Diagramm (Link s.u.) in Beziehung zueinander stehen. Der linke und der rechte Baum befinden sich in unterschiedlichen Packages.
Auf der linken Seite wird ein neuer Datentyp erstellt. Die Hierarchie ist in diesem vereinfachten Bsp natürlich nicht notwendig, mein ganzes Programm ist da etwas komplexer. Rechts werden Klassen abgebildet, die nur auf der untersten Ebene (hier: SubClass2) Attribute und Methoden besitzen.
Nun möchte ich, dass att2 nur die Werte Lit1 oder Lit2 annehmen kann. Ich setze den Typ also auf package1.UpperType. Die Alternative dazu wäre ein import package1.* in der Klasse SubClass2, damit ich die Kurzschreibweise "UpperType" verwenden kann. Allerdings müsste ich das in allen Klassen auf Ebene von SubClass2 einfügen.

Geht das auch "eleganter"? Ein Import in der UpperClass wird nicht einfach auf deren Unterklassen vererbt.

Gruß Tuxifant

attachment.php
 

Anhänge

  • classdiagramo.jpg
    classdiagramo.jpg
    35,8 KB · Aufrufe: 59
Zuletzt bearbeitet von einem Moderator:
Eine Idee wäre die Umsetzung mit geschachtelten Klassen:
Java:
public class UpperClass {
  import package1.*;

  public class SubClass1 {

    public class SubClass2 {
      private UpperType att2;
      // set- + get-Methode
    }
  }
}

Da UpperClass und SubClass1 selbst weder Variablen noch Methoden beinhalten, sondern nur der Strukturierung dienen, sollte es doch damit keine Probleme geben?

Gruß Tuxifant
 
Mehrere public-Klassen ineinander zu schachteln finde ich persönlich sehr unschön. Die Faustregel ist eigentlich ein public-Klasse pro Datei. Die Importe musst Du allerdings in jeder Klasse machen, die werden nicht vererbt. Das stört auch eigentlich nicht, zumal der * ja alles aus dem Paket importiert und IDE's normalerweise mehrere Importzeilen wegblenden.
 

Neue Themen


Zurück
Oben