Frage Abstaktion

acky

Mitglied
hi,
jetzt mal wieder ne kranke frage:
es existiert bekanntermaßen ein Interface "org.w3c.dom.Node".

nun gibt es in meiner situation eine methode, die als return ein solches Node-objekt
erwartet.

da dieses komplexer ist, würde ich gern eine klasse haben, die dieses node-objekt
darstellt.
kann ich irgendwie(!) von dieser "klasse" ableiten [ ... extends Node] (wenn ja, wie)
oder gibt es sonst optionen?
bin offensichtlich mit abstraktion nen bisschen auf dem kriegfuss!

bitte nicht schlagen!
thx,
acky
 
Ableiten kannst Du von jeder KLASSE, die nicht final ist. Node ist aber ein Interface, d.h. Du kannst es nur implementieren und die enthaltenen Methoden selbst ausfüllen.

Wie Du jedoch in der Javadoc erkennst, gibt es bereits eine Klasse, die dieses Interface implementiert: javax.imageio.metadata.IIOMetadataNode

Die brauchst somit nur selbst von dieser Klasse ableiten und Deine restliche Funktionalität mit unterbringen:

Code:
public class MyNode extends IIOMetadataNode {
//...
}

Code:
public Node getNode() {
  return new MyNode(); //im einfachsten Fall
}
 
Moin,
afaik kann man doch auch ein Interface ableiten?! Nur nicht als Klasse, sondern wieder als Interface, oder bin ich jetzt auf einem völlig falschen Dampfer?
 
Snape hat gesagt.:
Moin,
afaik kann man doch auch ein Interface ableiten?! Nur nicht als Klasse, sondern wieder als Interface, oder bin ich jetzt auf einem völlig falschen Dampfer?

Nope Interfaces kann man nur mit implements und nicht mit extends ableiten/erben. Aber der Hintergrund ist Dir ja bestimmt bekannt, siehste wahrscheinlich den Wald vor lauter Bäumen nicht. (oder wars anders rum?) ;)

Gruß

Luxor
 
falsch man kann Interfaces beerben

Code:
public interface Gaertnerei extends Bodenpflanze, LuftPflanze {

}
in Inerfaces ist sogar "mehrfachvererbung" möglich
 
Das ein Interface beerben kann ist klar aber das man das Interface mit extends weiter vererben kann ist doch sehr unwahrscheinlich.
Ich glaube das wahr doch die Frage von Snape.
 
Hm ... um in diese "philosophische" Diskussion einzusteigen, meiner Meinung nach kann man den Ausdruck "vererben" für ein Interface nicht anwenden, da ja ein Interfave lediglich Methoden bzw. Schnittstellen liefert (sagt ja schon der Name ...). Im Gegensatz dazu bietet eine Klasse ja die Möglichkeit vorgefertigte Eigenschaften an eine thematisch oder sachlich verwandte Klasse weiterzugeben - also zu "vererben".

Soviel mein Senf ...

Gruß
TOM
 
Das mit den Interfaces ist ja klar, nur nützt es nichts, wenn man Funktionalität in die Methoden rein bingen will, da ist man wohl oder über auf eine Klasse angewiesen...:eek:
 
Zurück