Michilee: Extend, Implement, Abstract

Beitrag lesen

Hi Richard,
vielen dank für die echt sehr ausfürliche und verständliche antwort.

interface: Alle Methoden von Interface müssen implementiert werden. Keine fertigen Methoden nutzbar (Verstehe ich nicht??). Variablen nutzbar

In einem Interface werden Methoden definiert, aber nicht implementiert. Die Implementierung dieser Methoden übernimmt die Klasse, die das Interface mit dem Schlüsselwort implements implementiert.

oki doki, d.h., dass in einem interface es überhaupt keine fertigen methoden geben darf, bzw. kann, die man dann später nutzt?

Private Variablen sind außerhalb der Klasse nicht sichtbar. Ist eine Variable oder Methode als protected deklariert, kannst du darauf nur innerhalb der Vererbungshierarchie zugreifen. Öffentliche bzw. paketsichtbare Variablen und Methoden rufst du auf einem Objekt, bzw. statische Variablen/Methoden auf der Klasse auf.

Öffentlich oder Paketsichbare (?) rufe ich dann direkt einfach auf?

Klassenname.variable?

Es gibt ja manchmal static final variablen, wo man dann den Wert ablesen kann. Hatte ich in manchen Codes auch gesehen, ohne, dass man glaube ich ein Objekt von der Klasse bildete. (Hatte aber den Code nicht geprüft, ob der lief/funktionierte)

Serializable ist ein schlechtes Beispiel, da es genau keine Methoden vorschreibt.

Dann hat die implementierung irgendwie wenig Sinn?

Sieh dir beispielsweise das Interface java.lang.Comparable an. Es schreibt eine Methode compareTo() vor, mit deren Hilfe eine Ordnungsrelation auf der Klasse definiert wird.

D.h., wenn mir ein Interface eine Methode etwas vorschreibt, dann müsste ich auch Wissen (nachschauen), was in der zu implementierte Methode gemacht werden muss/soll.

Die Objekte dieser Klasse sind dann also vergleichbar (engl. comparable). Ein Benutzer dieser Klasse sieht nun von außen, dass sie das Interface Comparable implementiert, und kann sich somit darauf verlassen, dass er auf dieser Klasse die compareTo()-Methode aufrufen kann.

Oki doki, vielen Dank.

Außerdem kann jeder Methode, die ein Comparable als Parameter erwartet, nun auch ein Objekt deiner Klasse übergeben werden (Stichwort Polymorphie).

Ja, ich muss mir dann noch anschauen, wie das mit dem Objektbilden war, wenn abgeleitet wurde oder interfaces genutzt wurde.

Interface= Steuergerät
Extend= Auto
MeineKlasse = VW
Abtract= Austattung

Ich hatte dann auch gesehen, dass man da ganz verschieden Objekte Bilden konnte.

Auto a= new Auto()
Auto a = new VW()

Von abtract konnte man glaub kein Objekt bilden, aber von Interface schon.

Das was Du dan oben mit Polymorphie meinst, war, wenn ich meine Klasse als Comerable übergebe, welches aber als Mutter ein Objekt hat, was... ah, ich schau mir das nochmal genau an, bevor ich hier nen schrott schreibe ;)

grüße