+ Antworten
Ergebnis 1 bis 4 von 4

Thema: Warum kann eine Klasse nicht von einer eigenen, statischen inneren Klasse ableiten?

  1. #1
    Global Moderator Floppy Disc Themenstarter
    Avatar von Landei
    Registriert seit
    31.07.2013
    Ort
    Sandersdorf-Brehna
    Fachbeiträge
    991
    Genannt
    164 Post(s)
    Blog-Einträge
    27
    Warum geht das nicht (IDEA sagt "Cyclic inheritance involving mypackage.Foo")?

    Java Code:
    1.  
    2. //Does not compile
    3. public class Foo extends Foo.InnerFoo {
    4.     public static class InnerFoo {
    5.        
    6.     }
    7. }

    Dass es nicht bei "normalen" inneren Klassen erlaubt ist, ist einleuchtend, aber mir fällt kein guter Grund ein, warum das bei inneren statischen Klassen verboten sein soll...

    Noch weniger einsichtig ist für mich, dass das sogar Interfaces betrifft:

    Java Code:
    1.  
    2. //Does not compile
    3. public class Foo implements Foo.InnerFoo {
    4.     public interface InnerFoo {
    5.        
    6.     }
    7. }

    BTW: Mich interessiert das Thema, weil ich beim Lesen von https://www.sitepoint.com/self-types...avas-generics/ gefragt habe, ob sich die "Scaffold"-Klassen im Code-Beispiel unter "Private Hierarchy" nicht etwas eleganter "verstecken" lassen.
    Geändert von Landei (19.11.2016 um 15:52 Uhr)

  2. #2
    User Viertel Megabyte Avatar von TMII
    Registriert seit
    19.02.2015
    Fachbeiträge
    313
    Genannt
    33 Post(s)
    Weil die innere statische Klasse Zugriff auf eine äußere statische Instanz der Klasse hat?
    Code:
    _/_/_/_/_/--_/------_/--_/_/_/--_/_/_/
    ---_/------_/_/--_/_/----_/------_/   
    --_/------_/--_/--_/----_/------_/    
    -_/------_/------_/----_/------_/     
    _/------_/------_/--_/_/_/--_/_/_/

  3. #3
    Global Moderator Floppy Disc Themenstarter
    Avatar von Landei
    Registriert seit
    31.07.2013
    Ort
    Sandersdorf-Brehna
    Fachbeiträge
    991
    Genannt
    164 Post(s)
    Blog-Einträge
    27
    Zitat Zitat von TMII Beitrag anzeigen
    Weil die innere statische Klasse Zugriff auf eine äußere statische Instanz der Klasse hat?
    Schon klar, aber was ist das konkrete Problem, das sich daraus ergibt? Sicher kann man damit zirkuläre Abhängigkeiten bauen, aber das ist an anderen Stellen in Java auch möglich.

  4. #4
    Global Moderator Viertel Gigabyte Avatar von SlaterB
    Registriert seit
    06.08.2008
    Fachbeiträge
    2.701
    Genannt
    277 Post(s)
    https://coderanch.com/t/370965/java/...heritance-dont

    verlinkt einen Artikel in dem es früher noch ging,
    Java Tip 50: On the Parameter Constants pattern | JavaWorld

    später aber wohl nicht mehr
    However, your attempt to have the enclosing class implement the interface is giving the compiler a conniption fit. It can't know what the interface is until it compiles the class, but it can't compile the class because it doesn't understand the interface. I imagine the compiler could be implemented in such a way to make sense of this situation anyway. Maybe some do and some don't.
    Geändert von Landei (20.11.2016 um 13:08 Uhr) Grund: quote Tag repariert
    Hansa wird Meister

+ Antworten Thema als "gelöst" markieren

Direkt antworten Direkt antworten

Gib folgenden Captcha-Code ein: F9H5J2

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. warum wird Tabelle nur von eine vererbte klasse angezeigt(Hibernate)
    Von anni80 im Forum Java Enterprise Edition (Java EE)
    Antworten: 4
    Letzter Beitrag: 23.03.2015, 23:39
  2. toString einer Klasse liefert nicht das was erwartet wird.
    Von ZickZack im Forum Java-Grundlagen
    Antworten: 18
    Letzter Beitrag: 11.03.2015, 17:48
  3. Antworten: 2
    Letzter Beitrag: 28.08.2013, 08:47
  4. Antworten: 12
    Letzter Beitrag: 21.08.2013, 14:49
  5. (Errors) Eclipse meldet, dass der Zugriff auf eine Klasse nicht möglich ist
    Von Unregistriert im Forum Java-Grundlagen
    Antworten: 24
    Letzter Beitrag: 27.02.2010, 00:05

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •