abstrakte klassen und interfaces

Status
Nicht offen für weitere Antworten.

myggel

Mitglied
hi!

kann mir jemand sagen für was man abstrakte klassen braucht, und für was interfaces gut sind?

ich kann in abstrakten klassen also eine methode deklarieren, die keinen rumpf hat - wofür ist das wirklich sinnvoll?

danke für eure antworten
micha
 
interfaces: http://www.galileocomputing.de/open...el_06_010.htm#Rxx365java06010040001D21F041100

abstrakte Klassen:
http://www.galileocomputing.de/open...el_06_009.htm#Rxx365java06009040001D11F018100

kurzversion:
abstrakte Klassen kommen in Vererbungshierarchien vor. Man kann in einer Klasse normale Methoden und Variablendefinitionen haben, aber auch abstrakte methoden deklarieren, die von den Subklassen implementiert werden müssen

Bsp: Klasse Mensch. Es gibt bekanntermaßen als Unterklassen Mann und Frau. Beide haben vieles gemeinsam, aber auch (zu) vieles unterschiedlich. Also alles gemeinsame in Klasse Mensch packen und ausprogrammieren. Das unterschiedliche als abstrakt deklarieren.
Abstrakt verhindert, dass man eine Instanz der Klasse erstellen kann. Man will nicht eine Instanz Mensch haben, man will Mann oder Frau


Interface dienen zur Beschreibung von gleichen Verhalten bzw Eigenschaften. Sie dürfen keine Variablendefinitionen haben (außer final konstanten) und keine Methodenimplementierungen.

Bsp: Comparable Interface. Einem sortieralgorithmus ist es so was von schnuppe ob er Strings, Zahlen oder komplexe Objekte sortieren soll, solange alle das Comparable Interface implementieren, das garantiert, dass es eine methode gibt (compareTo), die dem sortierer sagt, wie Objekte der klasse zu ordnen sind.

Also ein interface beschreibt ein bestimmtes Verhalten, dass die Klasse erhält
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben