konstruktor im interface

Status
Nicht offen für weitere Antworten.
S

stev.glasow

Gast
wieso kann ich im interface keine konstruktoren definieren ?
 

Nadja

Gesperrter Benutzer
Also ich bin mir da nicht ganz sicher, aber ich glaube das liegt daran, daß ein Konstruktor sowieso immer nur von einer Klasse implementiert werden kann. Er trägt ja auch den Namen dieser Klasse. Und da man Interfaces meist in mehreren Klassen implementiert würde es nicht so viel Sinn machen einen Konstruktor dort zu definieren. Statische Factory-Methoden sollten aber möglich sein...
 
S

stev.glasow

Gast
:arrow: was sind 'Factory-Methoden' ?

:arrow: mein problem ist eigendlich, dass ich ein interface definieren möche das die klassen die dieses interface implementieren, 'gezwungen' werden eine bestimmtem konstruktor zu nehmen.
 

Nadja

Gesperrter Benutzer
Factory Methoden sind statische (static) Methoden, die ein Objekt erstellen. String.valueOf() oder Integer.valueOf() sind z.B. welche. Wenn man unterschiedliche Objekte einer Klasse erstellen möchte - also mit verschiedenen Übergabewerten - wird das normalerweise mit Factory Methoden gemacht, da man diesen Namen geben kann, die einem sagen wie, bzw. mit welchen Werten dieses Objekt erstellt und was das Besondere hier ist. Außerdem muß eine Factory Methode nicht jedes mal ein komplett neues Objekt erstellen, im Gegensatz zu Konstruktoren, so werden sie auch für die Implementation des Singleton Patterns verwendet.

Vielleicht solltest Du in diesem Falle wirklich auf eine Factory Methode zurückgreifen, da das die einzige Möglichkeit ist, die mir jetzt einfällt wie Du die Klassen dazu zwingen kannst, diese Methode zu implementieren.
 

Nadja

Gesperrter Benutzer
Meinst Du Konstruktoren zu erzwingen, die eine bestimmte Signatur haben? Nicht das ich wüßte...

Ansonsten kannst du natürlich vieles von dem was Interfaces machen auch mit abstrakten Klassen machen, aber wenn Du aus Design-Technischen Gründen nicht alle Klassen, die die gewollten Methoden implementieren sollen, von einer abtrakten Superklasse abstammen lassen willst, müßtes Du Interfaces benutzen.

Beispiel: Die Klassen 'StoffKatze' und 'Katze' haben beide das Attribut 'Fell' und können/sollen die Methoden 'bürsten()' und 'istHaarig()' implementieren. Die Klasse 'Katze' stammt von der abstrakten Klasse 'Tier' ab, die die abstrakte Methoden 'gibLaut()', 'bürsten()' und 'istHaarig()' implementiert. 'Katze' implementiert diese Methoden dann selbst. Wenn man jetzt 'StoffKatze' auch von 'Tier' erben lassen würde, müßte diese Klasse auch 'gibLaut' implementieren, was aber keinen Sinn macht, da ein Stofftier keinen Laut geben kann. Also kreiert man statt dessen ein Interface 'MitFell' mit den Methodensignaturen 'bürsten()' und 'istHaarig()' und läßt die beiden Klassen 'StoffKatze' und 'Katze' dieses Interface implementieren.

Man könnte dann auch wunderbar in einer Klasse 'Ich' eine Collection 'meineLieblinge' implementieren und dort ein Objekt 'StoffKatze' und ein Objekt 'Katze' reinlegen. Wenn man dann eines dieser Objekte herausholt kann man dann mit ((HatFell)meinObjekt).bürsten() eine der Methoden aus dem Interface aufrufen.

Hmm... Das war ganz schön lang. :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Parameter Konstruktor plus rechnen Allgemeine Java-Themen 6
M Konstruktor einer Methode Allgemeine Java-Themen 35
M Frage zum Konstruktor Allgemeine Java-Themen 2
B Klassen Objekt erzeugen und Konstruktor aufrufen - Welche Lösung ist besser? Allgemeine Java-Themen 2
D Konstruktor - jedes Objekt einzeln erzeugen - alternative? Allgemeine Java-Themen 8
J Konstruktor in JSP beim Kompilieren nicht gefunden Allgemeine Java-Themen 3
J Inner class + Leer-Konstruktor Allgemeine Java-Themen 1
P Threads Objekt im Konstruktor anders wie im Run()-Block Allgemeine Java-Themen 10
H Beim Konstruktor "this" Allgemeine Java-Themen 4
K Variablen Konstruktor, unendlich viele Allgemeine Java-Themen 3
T Konstruktor löst exception aus Allgemeine Java-Themen 7
C Klassen und Konstruktor Allgemeine Java-Themen 2
W Threads NullPointer: Konstruktor "zu langsam"? Allgemeine Java-Themen 3
L Klassen Konstruktor soll Objekt anderer Klasse erzeugen Allgemeine Java-Themen 2
M Klassen Klasse Dynamisch laden und Konstruktor aufrufen Allgemeine Java-Themen 1
DStrohma In abstrakter Klasse Konstruktor von Instanz implementieren Allgemeine Java-Themen 11
C Reflektions, Benutzer soll Konstruktor auswählen und Parameter übergeben können Allgemeine Java-Themen 5
S OOP this-Referenz als Konstruktor-Übergabe Allgemeine Java-Themen 8
ruutaiokwu NullPointerException auf member, die per konstruktor gesetzt wird (multithread-kontext) Allgemeine Java-Themen 2
ruutaiokwu auf priv. konstruktor von "aussen" zugreifen? Allgemeine Java-Themen 4
A Methoden laufen im Konstruktor, außerhalb allerdings nicht Allgemeine Java-Themen 2
E Array im Konstruktor übergeben Allgemeine Java-Themen 3
A Reflection Konstruktor Parameter Supertyp Allgemeine Java-Themen 2
X Dynamisch Konstruktor aufrufen Allgemeine Java-Themen 12
J abstrakte Klassen, Konstanten und Konstruktor Allgemeine Java-Themen 9
E Finale Attribute und Konstruktor Allgemeine Java-Themen 3
S Konstruktor ermitteln Allgemeine Java-Themen 3
B Konstruktor wird nicht aufgerufen Allgemeine Java-Themen 4
T class.newinstance + try/catch-konstruktor Allgemeine Java-Themen 6
S Neue Instanz eines Objekts erzeugen - Konstruktor erhaelt Parameter. Allgemeine Java-Themen 5
B Konstruktor - Vererbungsproblem Allgemeine Java-Themen 2
S konstruktor vererben Allgemeine Java-Themen 5
B Problem mit Methodenaufruf in Konstruktor Allgemeine Java-Themen 6
D [SOLVED] Collection wird nicht richtig per Konstruktor übernommen Allgemeine Java-Themen 8
S Instanz in einer Klasse erstellen, und dem Konstruktor die eigene Klasse mitgeben Allgemeine Java-Themen 4
M Konstruktor / statischer Block Allgemeine Java-Themen 13
Ark Konstruktor per Reflection nicht bekannt Allgemeine Java-Themen 4
J Klasse auf Konstruktor oder Methode testen? Allgemeine Java-Themen 3
Junktyz Konstruktor Allgemeine Java-Themen 9
T Schleife im Konstruktor? Allgemeine Java-Themen 9
conan2 super-super-Konstruktor? Allgemeine Java-Themen 3
P static-Methode aus dem Konstruktor aufrufen Allgemeine Java-Themen 6
F Werte von Member-Variablen erst im Konstruktor setzen? Allgemeine Java-Themen 7
MQue zaehlen im Konstruktor Allgemeine Java-Themen 3
V Initialisierung nur im Konstruktor? Allgemeine Java-Themen 14
J Konstruktor-Aufruf nur aus einem bestimmten Package erlauben Allgemeine Java-Themen 5
T Konstruktor von Hashtable unter Java 5.0! Allgemeine Java-Themen 3
M Feld initialisieren, direkt oder Konstruktor Allgemeine Java-Themen 2
D super-Konstruktor ist nicht super ;) Allgemeine Java-Themen 6
A Objektmethode aus Konstruktor aufrufen? Allgemeine Java-Themen 14
7 Konstruktor Allgemeine Java-Themen 12
M Konstruktor, der Excpetions wirft Allgemeine Java-Themen 2
H Super-Konstruktor Allgemeine Java-Themen 7
A Exception in Konstruktor - trotzdem wird Objekt erzeugt! Allgemeine Java-Themen 3
S Konstruktor vererben Allgemeine Java-Themen 9
thE_29 String Konstruktor - Umwandlungsprobleme Allgemeine Java-Themen 5
J Probleme mit dem Konstruktor Allgemeine Java-Themen 8
G Konstruktor-Aufruf nun mit oder ohne Typ? Allgemeine Java-Themen 9
D Kein public Konstruktor Allgemeine Java-Themen 4
K Exception im Konstruktor / Objekt == null Allgemeine Java-Themen 7
S konstruktor nur innerhalb der klasse aufrufbar Allgemeine Java-Themen 5
D Interface, aber die Methoden bleiben teilweise gleich Allgemeine Java-Themen 35
B Leere vererbte Interface-Methoden Allgemeine Java-Themen 8
OnDemand Interface imlementieren Allgemeine Java-Themen 4
Buroto Interface Allgemeine Java-Themen 2
T Komische Zeichen im Zusammenhang mit Serializable interface Allgemeine Java-Themen 13
M Kann man Annotationen auf Klassen einschränken die ein Interface implementieren? Allgemeine Java-Themen 1
H Kombination Interface und Abstrakte Klasse bei Generics Allgemeine Java-Themen 3
B JaxB und @XmlIDREF mit Interface Allgemeine Java-Themen 1
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
P Abstrakte Klassen vs. Interface Allgemeine Java-Themen 4
Kirby.exe Autocloseable Interface Allgemeine Java-Themen 2
T Abgeleitetes Interface public ohne Schlüsselwort "interface"? Allgemeine Java-Themen 3
S static in Interface und Klasse Allgemeine Java-Themen 2
S static methode im Interface Allgemeine Java-Themen 1
S Interface, generischer Datentyp, Exception? Allgemeine Java-Themen 3
B Vererbung Interface und implementierende Klassen Allgemeine Java-Themen 8
A Anonyme Klassen - Interface Allgemeine Java-Themen 5
C Ein Iterator ist eine Implementierung des Interface Iterable? Allgemeine Java-Themen 2
J Generische Interface - Problem Allgemeine Java-Themen 3
mrBrown Namensfindung Fluent-Interface Allgemeine Java-Themen 0
J Logik in Interface Allgemeine Java-Themen 2
N Best Practice Allgemeines Verhalten für ein Interface implementieren? Allgemeine Java-Themen 7
B eigenes Consumer Interface Allgemeine Java-Themen 0
S 2 methoden mit gleichen namen und ein Interface Allgemeine Java-Themen 9
N GUI Interface, swing Allgemeine Java-Themen 7
Thallius Konzeptproblem User-Interface Allgemeine Java-Themen 5
T Interface vs abstract Allgemeine Java-Themen 2
S Klassen Abstract, Interface und ein Chat Tool Allgemeine Java-Themen 1
I Interface Interface / Klasse - wieso Abstract? Allgemeine Java-Themen 13
D generische Interface und konkrete Methode Allgemeine Java-Themen 3
C Klassen Problem mit Funktion einer Generischen Klasse die ein Interface implementiert Allgemeine Java-Themen 0
N Problem mit Generics und Interface Allgemeine Java-Themen 4
D Methode mit optionalen Parametern in Interface Allgemeine Java-Themen 3
T Interface mit generische Typen Allgemeine Java-Themen 5
M Interface einer Library implementieren Allgemeine Java-Themen 3
A Klassen ein Interface aufzwingen Allgemeine Java-Themen 4
Bananabert Interface Custom 'Event' mit Interface Allgemeine Java-Themen 10
J Interface Serializable Methodensignatur Allgemeine Java-Themen 2
J Interface Interface für Framework verwenden Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben