Klassen in Java



  • tlzärtbeYX schrieb:

    Könnte ein praktisches Beispiel gegeben werden?

    Interfaces sind an sich mächtiger. Warum konkret abstrakte Klassen?

    Danke

    praktisches Beispiel:

    public abstract class hallo {
      public abstract int typ;
      public int getTyp() {
        return typ;
      }
      public void setTyp(int newtyp) {
        this.typ = newtyp;
      }
    }
    


  • So ein blödsinn, felder kann man doch nicht abstract machen :xmas2:



  • YXräblettoz schrieb:

    unsinn, wieso soll irgendetwas von beiden "mächtiger" sein 😕

    Vielleicht ist das im Bezug darauf gemeint, dass Interfaces fast beliebig implementiert werden können, während nur einfache Vererbung möglich ist.



  • Ist es das die methoden in Interfaces (also deklaration bzw. in cpp prototypen) alle in der abgeleiteten Klasse implementiert werden müssen und die methoden aus einer abstrakten Klasse nicht?

    Oder verwechsel ich da grad was?

    Gruß



  • Ich bin gerade etwas zu faul um zu schreiben ^^. Aber hier findest du eine recht gute Erklärung.

    *Edit:
    Ausserdem findest du hier... viel zu Vererbung. Da werden abstrakte Klassen und Interfaces beschrieben. Ich habe nie das ganze durchgelesen, ist aber glaube ich sehr gut.

    Und hier... noch speziell was zu den Interfaces. Könnte sich lohnen das ganze einmal durchzulesen, denn ich glaube, dass es wirklich sehr gut anhand von konkreten Beispielen erklärt wird.



  • Danke, aber diesen Satz hier aus einem deiner Links ist doch falsch oder?

    Die Lösung für das Problem sind abstrakte Methoden. Eine abstrakte Methode wird in der Superklasse nur definiert,
    nicht deklariert,also nicht implementiert:

    Ich war der Meinung das deklarieren nicht das gleiche ist wie implementieren.

    Bei der deklarierung erstellt man nur den "prototyp" einer methode und beim implementieren eben die komplette funktionalität der Methode oder?

    Gruß



  • und was ich jetzt nicht herauslesen konnte, bzw mir nicht ganz klar ist.
    MUSS ich die geerbten abstrakten Methoden in der Subklasse implementieren oder nicht?



  • Ja, falls die Subklasse selber nicht abstract sein soll.
    Sonst nein.



  • dankeschön.

    Habe mir die Links durchgelesen udn schön verstanden, was ich jetzt noch nicht verstanden habe ist die Typenumwandlung beim Vererben(mit abstrakten klassen bzw. interfaces).
    Wann ist solche eine Typenumwandlung denn nötig? Hat wer vielleicht noch einen solch schönen Link bei Seite wie die von icarus2 ?

    Gruß



  • Ich finde hier auf Wikipedia ist das nicht allzu schlecht erklärt: Typumwandlungen in Java


Anmelden zum Antworten