Interfaces?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo Leute,

habe mir bereits Themen im Forum und in Büchern angesehen. Aber so richtig schlau werde ich nicht daraus. Deshalb eine konkrete Frage.
Ich habe folgende Definition in vielen meiner Klassen:
Code:
  private SimpleDateFormat af = new SimpleDateFormat("yyyy-MM-dd");
  private DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

Ist eine Schnittstelle dazu da, diese Information aus einer Schnittstelle zu bekommen. Und wenn ja, wie wird dann richtig darauf zugegriffen? Muss ich dann in der Klasse in der ich die Schnittstelle implementiere, eigene Objekte anlegen, um diese dann zu initialisieren?

Bisher habe ich die obige Information in jeder Klasse als Klassenvariable neu definiert. Es funktioniert zwar geht aber bestimmt besser.

Schönen Dank
 

Sky

Top Contributor
Das was Du da machst hat erst mal nix mit Interfaces zu tun. DateFormat ist die abstracte super-Klasse von SimpleDateFormat.

Du brauchst auch nicht beide Zeilen in deinem Code; sondern nur eine. Ich würde die zweite Variante vorziehen.
 
B

bygones

Gast
äh ich versteh deine Frage nicht ?!

Willst du wissen wofür sie da sind ? wann man sie verwendet?
 
G

Guest

Gast
shit;

hab nen Fehler gemacht!
Code:
  private DateFormat df = new SimpleDateFormat("HH-mm-ss");
  private SimpleDateFormat af = new SimpleDateFormat("yyyy-MM-dd");

Das was ich meine ist folgendes;

Ist es "normal" in jeder Klasse in der ich die Formate benötige jedesmal ein eigenes Objekt anzulegen oder geht das nicht viel einfacher bzw. ist das nicht der Sinn von Interfaces?

Danke
 

SnooP

Top Contributor
Nein - das ist nicht der Sinn eines Interfaces... Ein Interface heißt zu Deutsch ja Schnittstelle und definiert die Features einer Klasse/Objekt auf die von außen zugegriffen werden kann. Diese werden mit Hilfe eines Namens unter einem Typ zusammengefasst.

Wenn man ein Objekt erzeugt, dessen Klasse ein bestimmtes Interface implementiert, weiß man es besitzt bestimmte Methoden... zudem kann man bei der Erstellung des Objekts die lokale Variable vom Typ des Interfaces machen, ähnlich wie oben, wo du DateFormat als Typ benutzt, obwohl der Typ des konkreten Objekts ja SimpleDateFormat heißt.

Eine abstrakte Klasse ist somit was ziemlich ähnliches wie ein Interface - in der Literatur wird beide Male von Schnittstellen gesprochen - einmal durch Untertypenbildung so wie oben und einmal durch die Definition eines eigenen Schnittstellentyps, der mit der Vererbungshierarchie von Klassen nischts zu tun hat.

Zu deiner konkreten Frage:
Das ist nicht der Sinn von Interfaces (s.o.) - und es ist normal Objekte zu erstellen, wenn man auf sie zugreifen will ;) - im Fall des DateFormats - klar - wenn du ein bestimmtes Format für irgendwas benötigst, brauchst du nen Objekt davon.
Es kann nu sein, dass du zich Objekte hast, die alle auf ein und dasselbe Date-Format zugreifen wollen - da helfen dir die Referenzen weiter... sprich du hast eine zentrale Klasse auf die alle anderen Klassen zugreifen können, die eine public-Methode definiert namens getDateFormat()... und diese liefert das DateFormat Objekt so wie du es gerne hättest von jedem beliebigen Objekt aus. Du musst nur zusehen, dass du das Objekt beim Erstellen der zentralen Klasse auch erzeugst, sonst liefert die Methode lediglich "null"...
 
G

Guest

Gast
Hbae mir zwar deinen Text öfters durchlesen müssen, verstehe nun aber einiges mehr. Muss mir als auch abstrakte Klassen nochmals genauer ansehen. Das einzige was ich über die im Kopf habe ist, dass sie sich nicht instanzieren lassen.

Auf jeden Fall bedanke ich mich sehr für deine ausführliche Antwort und wünsche Dir und natürlich auch allen anderen ein schönes Weihnachtsfest!
 

SnooP

Top Contributor
Vernünftig verstehen tut man das erst, wenn mans wirklich verwendet.. das theoretische Gelaber darüber ist immer etwas schwierig zu verstehen ;)

Das mit dem Nicht-Instanzieren ist schonmal richtig - in sofern ists da auch sehr ähnlich zu nem Interface.
Bei ner abstrakten Klasse müssen die als abstract deklarierten Methoden dieser Klasse in den abgeleiteten Klassen (Subklassen) implementiert werden - sprich mit Leben gefüllt.
Genauso bei den Interfaces - wenn du dieses in einer Klasse implementierst (implements), musst du alle definierten Methoden entsprechend programmieren.

Der große Unterschied: Interfaces liegen irgendwo haben also nix mit Vererbung zu tun. Eine Klasse kann mehrere Interfaces implementieren, aber immer nur von einer Klasse erben, auch wenn diese vollständig abstrakt ist.
Ein Vorteil einer abstrakten Klasse is nu, dass verschiedene Methoden in dieser Klasse bereits implementiert werden können. Wenn man also weiß, dass in allen Unterklassen der gleiche Algorithmus immer wieder auftritt, kann eine Methode vollständig ausprogrammiert werden, die dann in den Unterklassen schon verwendet werden kann.
Eine abstrakte Klasse ist also so ne Art "Mischding" ;) - und man ist wie schon gesagt daran gebunden, dass man ne Oberklasse haben muss, von der man erbt - das macht wirklich nur Sinn, wenn die Subklassen inhaltlich zu dieser abstrakten Oberklasse gehören... häufig gibts da ne ganze Reihe Einschränkungen, daher würde ich soweit es geht Interfaces nutzen. Aber das hängt stark vom jeweiligen Verwendungszweck ab - oft wird ja auch genau das benötigt, dass man eine Vaterklasse hat, die als großes Vorbild für die Subklassen dient ;)

Dir natürlich auch ein schönes Weihnachtsfeste und viel Spaß mit Java auch im neuen Jahr ;)
 
B

bygones

Gast
um auch noch was kluges sagen zu können :)

Interfaces sind eine im Grunde abstrakte Klassen ohne Variablendefinition und Methodenimplementierung....

so und nun frohe Weihnacht euch allen :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Wozu dient Interfaces? Java Basics - Anfänger-Themen 6
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
U Funktionale Interfaces mit mehreren abstrakten Methoden? Java Basics - Anfänger-Themen 8
M Interfaces Aufgabe Java Basics - Anfänger-Themen 2
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
I XML und Interfaces aus anderen Projekten Java Basics - Anfänger-Themen 3
8u3631984 Record - Interfaces Java Basics - Anfänger-Themen 4
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
H Sinn von Interfaces Java Basics - Anfänger-Themen 21
B JaxB und Interfaces? Java Basics - Anfänger-Themen 2
M Funktionale Interfaces Java Basics - Anfänger-Themen 3
Kirby.exe Frage zur Verwendung von Interfaces Java Basics - Anfänger-Themen 6
H Frage zu interfaces Java Basics - Anfänger-Themen 1
J Zweck von Interfaces immer noch nicht klar Java Basics - Anfänger-Themen 3
M Klasse erbt von Interfaces Java Basics - Anfänger-Themen 6
T Interfaces in erbenden Klassen Java Basics - Anfänger-Themen 2
T Abstrakte Klasse und Interfaces Java Basics - Anfänger-Themen 12
H Polymorphie Interfaces und statischer Typ Java Basics - Anfänger-Themen 33
T Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 7
F Exceptions in Interfaces Java Basics - Anfänger-Themen 4
F Interface Warum Interfaces? Java Basics - Anfänger-Themen 5
R interfaces Java Basics - Anfänger-Themen 1
B Interfaces Java Basics - Anfänger-Themen 6
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
J Interfaces? Java Basics - Anfänger-Themen 32
M Erstellung Interfaces....totale Anfängerfrage Java Basics - Anfänger-Themen 16
S Erste Schritte Innere Klassen und Interfaces Java Basics - Anfänger-Themen 2
J Wofür dienen Interfaces ? Java Basics - Anfänger-Themen 1
Hijo2006 Frage zu Interfaces Java Basics - Anfänger-Themen 21
Hacer Interfaces implementieren Java Basics - Anfänger-Themen 7
H Implementierung eines Interfaces erweitern Java Basics - Anfänger-Themen 13
L Via Interfaces unterschiedliche Klassen ansprechen Java Basics - Anfänger-Themen 8
A Verwendung von Interfaces Java Basics - Anfänger-Themen 7
J Interfaces Java Basics - Anfänger-Themen 15
D Frage bzgl. Interfaces Java Basics - Anfänger-Themen 10
D Interface Verständnisprobleme von Interfaces Java Basics - Anfänger-Themen 5
D Interface Interfaces und abstrakte Klassen implementieren Java Basics - Anfänger-Themen 4
S Rollen verändern, Interfaces austauschen wie? Java Basics - Anfänger-Themen 10
K Interfaces/Klassen etc. Java Basics - Anfänger-Themen 6
F Implementierung von Interfaces -> Problem mit main Java Basics - Anfänger-Themen 12
S Verständnisproblem bei Interfaces Java Basics - Anfänger-Themen 6
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
M Frage zu Generics in Klassen, Abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
O Java Interfaces für andere Programmiersprachen zur Verfuegung stellen? Java Basics - Anfänger-Themen 2
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
G Instanzen eines Interfaces erzeugen Java Basics - Anfänger-Themen 7
M Compiler-Fehler Alle Methoden eines Interfaces Implementiert dennoch Fehler Java Basics - Anfänger-Themen 3
V Interface Interfaces und abstrakte Klassen Java Basics - Anfänger-Themen 3
F Best Practice UML/Planung eines Projektes (Klassen, Interfaces, ...) Java Basics - Anfänger-Themen 0
V Vererbung Vererbung, Interfaces und OOP... Java Basics - Anfänger-Themen 10
C Sinn eines Interfaces? Java Basics - Anfänger-Themen 4
A Interface Poymorphismus bei Interfaces Java Basics - Anfänger-Themen 2
Pentalon Eclipse JUNO keine Vorschläge von Methoden bzw. Interfaces der eigenen Klassen Java Basics - Anfänger-Themen 5
R Mehrere Interfaces(Comparable, ...) Java Basics - Anfänger-Themen 2
J Interfaces Abstrakte Klassen Java Basics - Anfänger-Themen 15
D Interfaces und allgemeingültige Methodenaufrufe Java Basics - Anfänger-Themen 6
H Erste Schritte 2 User Interfaces für eine Anwendung Java Basics - Anfänger-Themen 7
S OOP Wann Proxies und Interfaces? Java Basics - Anfänger-Themen 3
M Interface @Inject mit Interfaces? Java Basics - Anfänger-Themen 2
F Interface Unterschied von Attributen und Methoden bei abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 5
V mehrfachvererbung unter interfaces Java Basics - Anfänger-Themen 10
J Interface Wie funktioniert das mit den Interfaces. Ich verstehe es einfach nicht! :( Java Basics - Anfänger-Themen 15
T Interfaces und Implementierungen Java Basics - Anfänger-Themen 12
S Interface mehrere Interfaces Java Basics - Anfänger-Themen 2
M Vererbung Problem bei Interfaces Java Basics - Anfänger-Themen 8
H Dynamische Bindung mit Interfaces und LinkedList Java Basics - Anfänger-Themen 7
F Interfaces Java Basics - Anfänger-Themen 4
M Frage zu Interfaces Java Basics - Anfänger-Themen 3
N Generics und Interfaces Java Basics - Anfänger-Themen 5
D Abstrakte Klassen und Interfaces als Paramter in Funktionen Java Basics - Anfänger-Themen 3
P OOP Aufruf eines Interfaces Java Basics - Anfänger-Themen 4
N OOP Vererbung von Interfaces Java Basics - Anfänger-Themen 12
S Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 2
D Sinn von Interfaces - Wozu? Java Basics - Anfänger-Themen 9
P Frage zu Interfaces Bsp. Java Basics - Anfänger-Themen 9
A Deklarationen in abstrakten Klassen und Interfaces Java Basics - Anfänger-Themen 11
R Adapterklassen vs Interfaces Java Basics - Anfänger-Themen 6
P Interfaces -> eins oder mehrere für eine Anwendung? Java Basics - Anfänger-Themen 9
2 Interfaces, Polymorphie und Methoden. Java Basics - Anfänger-Themen 14
A Obstlager Interfaces Java Basics - Anfänger-Themen 7
K Theor. Frage zu Interfaces Java Basics - Anfänger-Themen 30
T Frage zu Interfaces und Abstrakten Klassen Java Basics - Anfänger-Themen 4
J Interfaces Java Basics - Anfänger-Themen 14
L Interfaces Java Basics - Anfänger-Themen 5
J spiel "Gefangenendilemma" Probleme mit Interfaces Java Basics - Anfänger-Themen 8
H Interfaces in java? Java Basics - Anfänger-Themen 2
A OOP Interfaces mit gleichem Methoden Java Basics - Anfänger-Themen 15
T Interfaces: Braucht man abstrakte Klassen eigentlich noch? Java Basics - Anfänger-Themen 3
S Implementierung gegen Interfaces / List, ArrayList, LinkedList Java Basics - Anfänger-Themen 11
D Interfaces / Schnittstellen Java Basics - Anfänger-Themen 8
I Probleme mit Interfaces Java Basics - Anfänger-Themen 4
K Interfaces "Schreibaufwand" Java Basics - Anfänger-Themen 53
I Interfaces Java Basics - Anfänger-Themen 34
bigbasti Warum genau braucht man Interfaces? Java Basics - Anfänger-Themen 10
A Programmieren gegen Interfaces Java Basics - Anfänger-Themen 4
I Frage zu Collection und List Interfaces Java Basics - Anfänger-Themen 2
7 Interfaces - Aufbau Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben