| Autor |
Nachricht |
Helpi
Unregistrierter
|
Helpi Unregistrierter
19:43:00 11.04.2002 Titel: |
Interface |
Zitieren |
Helft mir dringend weiter, bitte...
Ich sehe den Sinn einfach nicht eines Interfaces!!!
Könnt ihr mir dies bitte genauer Erklären? Nutzen?
MfG
Helpi |
|
|
|
 |
Werbeunterbrechung
|
|
 |
Twiggy Ramirez
Mitglied
Benutzerprofil
Anmeldungsdatum: 09.03.2002
Beiträge: 101
|
Twiggy Ramirez Mitglied
10:06:00 12.04.2002 Titel: |
|
Zitieren |
Mehrfachvererbung. |
_________________ C++? Is that a kind of toilet paper?
|
|
 |
CengizS
Moderator
Benutzerprofil
Anmeldungsdatum: 28.05.2001
Beiträge: 3502
|
CengizS Moderator
11:31:00 12.04.2002 Titel: |
|
Zitieren |
@Twiggy
Genau das ist falsch
Mit Interfaces soll keine Mehrfachvererbung gemacht werden sondern lediglich den implementierenden Klassen vorgeschrieben werden, welche Methoden zu implementieren sind. Im Gegensatz zu Abstrakten Klassen ist eine Klasse die keine Methode aus der Interface-Definition implementiert nämlich nicht auch ein Interface sondern schlicht illegal. Wenn eine Klasse die Methoden aus der abstrakten Klasse nicht implementiert ist diese jedoch ebenfalls abstrakt. |
_________________ Viele Grüße, Cengiz Şahin
|
|
 |
helpi
Unregistrierter
|
helpi Unregistrierter
14:30:00 12.04.2002 Titel: |
|
Zitieren |
Und nun auf Deutsch? Bitte, ich würde nur gerne den Sinn verstehen von Interfaces...
Wenn es geht ein wenig simpler...
Greez |
|
|
|
 |
CengizS
Moderator
Benutzerprofil
Anmeldungsdatum: 28.05.2001
Beiträge: 3502
|
CengizS Moderator
16:05:00 12.04.2002 Titel: |
|
Zitieren |
Hmmm ich dachte eigentlich immer, dass mein Deutsch ausreichend sei aber na gut ...
Interfaces beschreiben Typen, die aus Methodensignaturen und Konstanten bestehen, ohne ihre Implementierung anzugeben. Diese Typen werden von Klassen ausgefüllt, indem die geforderten Methodensignaturen mit Funktionalität ergänzt werden. Interfaces, oder zu deutsch Schnittstellen, sind im Wesentlichen abstrakte Klassen.
Interfaces können auch einfach als Gruppierungen von Funktionen aufgefaßt werden, von denen sichergestellt ist, daß die Klassen, die Schnittstellen implementieren, mindestens die Funktionalität für eben diese Funktionen bereitstellen.
Interfaces enthalten im Gegensatz zu abstrakten Klassen überhaupt keine implementierten Methoden; alle Methoden existieren nur als Funktionssignaturen. Eine Schnittstelle legt somit eine Menge von Methoden fest, die bei einem Objekt angwendet werden können. Abstrakte Klassen dagegen enthalten zum Teil bereits implementierte Methoden, um den von ihnen abgeleiteten Klassen ein gewisses Grundverhalten mitzugeben.
Das fettgedruckte oben beschreibt den Unterschied Interface <-> Abstrakte Klassse.
Ich hoffe dies ist nun richtiges Deutsch [img]images/smiles/icon_smile.gif[/img] |
_________________ Viele Grüße, Cengiz Şahin
|
|
 |
Helpi
Unregistrierter
|
Helpi Unregistrierter
22:23:00 14.04.2002 Titel: |
|
Zitieren |
Vielen Dank!!!
Hat mir sehr weitergeholfen...
Thanks...
Helpi |
|
|
|
 |
Helium
Mitglied
Benutzerprofil
Anmeldungsdatum: 31.03.2002
Beiträge: 3535
|
Helium Mitglied
15:47:00 20.04.2002 Titel: |
|
Zitieren |
@CengizS
Intefaces haben aber den Vorteil, Mehrfachvererbungstauglich zu sein.
Vorallem dienensie dazu Parameter für Funktionen zu sein. Jede Klasse die dieses Interface implementeirt, kann als Parameter für diese verwendet werden. |
_________________ Manual memory management is premature optimization.
|
|
 |
Twiggy Ramirez
Mitglied
Benutzerprofil
Anmeldungsdatum: 09.03.2002
Beiträge: 101
|
Twiggy Ramirez Mitglied
21:31:00 20.04.2002 Titel: |
|
Zitieren |
Pass auf, dass du Cengiz nicht zu sehr provozierst. Er ist auf das Thema Mehrfachvererbung schlecht zu sprechen. Ich hab von ihm deshalb auch schon was auf den Mund gekriegt, er sagt es ist falsch, und nicht nur das, er hat es auch noch fett geschrieben!
Trotzdem bin ich immernoch der Meinung, dass Interfaces in erster Linie dazu dienen, das in Java unzulässige Erben von mehreren Vaterklassen zu kompensieren. |
_________________ C++? Is that a kind of toilet paper?
|
|
 |
O'Dog
Mitglied
Benutzerprofil
Anmeldungsdatum: 24.05.2000
Beiträge: 1198
|
O'Dog Mitglied
04:06:00 21.04.2002 Titel: |
|
Zitieren |
| Zitat: | Original erstellt von Twiggy Ramirez:
Pass auf, dass du Cengiz nicht zu sehr provozierst. Er ist auf das Thema Mehrfachvererbung schlecht zu sprechen. |
Jaa, pass bloß auf, sonst kommt der böse Cengiz zu dir nach Hause
und dann gibs ordentlich Haue;)
O'Dog |
_________________ Ich war Atheist, bis ich erkannte, dass ich Gott bin.
|
|
 |
O'Dog
Mitglied
Benutzerprofil
Anmeldungsdatum: 24.05.2000
Beiträge: 1198
|
O'Dog Mitglied
04:08:00 21.04.2002 Titel: |
|
Zitieren |
Übrigens lassen sich interfaces "mehrfachvererben"
[ Dieser Beitrag wurde am 21.04.2002 um 04:19 Uhr von O'Dog editiert. ] |
_________________ Ich war Atheist, bis ich erkannte, dass ich Gott bin.
|
|
 |
CengizS
Moderator
Benutzerprofil
Anmeldungsdatum: 28.05.2001
Beiträge: 3502
|
CengizS Moderator
11:31:00 21.04.2002 Titel: |
|
Zitieren |
@Twiggy: Was heisst denn hier "auf den Mund geschlagen"? Es geht hier nur um eine rein objektive Beantwortung einer Frage. Es gibt in der Tat keine Mehrfachvererbung in Java und das Implementieren eines Interfaces stellt auch keine solche da.
Es geht bei Interfaces nur darum einer Klasse vom Typ X vorzuschreiben, welche Methoden sie implementieren muss um sich "Y-able" zu schimpfen. Nicht zuletzt deswegen werden viele Interfaces mit Adjektiven benannt. "Comparable", "Runnable", "Serializable" etc. pp. Nur die Tatsache, dass man - wie O'Dog schon angedeutet hat - mehrere Interfaces implementieren kann ist kein Beweis für Mehrfachvererbung zumal man in Interfaces keine fertig implementierte Methode schreiben kann (ganz im Gegensatz zu abstrakten Klassen).
[ Dieser Beitrag wurde am 21.04.2002 um 11:36 Uhr von CengizS editiert. ] |
_________________ Viele Grüße, Cengiz Şahin
|
|
 |
CengizS
Moderator
Benutzerprofil
Anmeldungsdatum: 28.05.2001
Beiträge: 3502
|
CengizS Moderator
11:39:00 21.04.2002 Titel: |
|
Zitieren |
@Helium: In der Tat kann man mehrere Interfaces implementieren und ein Interface kann auch von mehreren Interfaces "abgeleitet" werden. Da man aber nie ein Objekt eines Interfaces (direkt) erzeugen kann ist damit die "Mehrfachvererbung" wieder weg, da sie nicht direkt nutzbar ist. |
_________________ Viele Grüße, Cengiz Şahin
|
|
 |
elise
Mitglied
Benutzerprofil
Anmeldungsdatum: 18.05.2001
Beiträge: 8095
|
elise Mitglied
14:23:00 21.04.2002 Titel: |
|
Zitieren |
ich finde, diese auseinandersetzung könnte ins faq.. interfaces gibts da noch nicht.. |
_________________ There's An App For That
|
|
 |
O'Dog
Mitglied
Benutzerprofil
Anmeldungsdatum: 24.05.2000
Beiträge: 1198
|
O'Dog Mitglied
14:31:00 21.04.2002 Titel: |
|
Zitieren |
| Zitat: | Original erstellt von CengizS:
Nur die Tatsache, dass man - wie O'Dog schon angedeutet hat - mehrere Interfaces implementieren kann ist kein Beweis für Mehrfachvererbung zumal man in Interfaces keine fertig implementierte Methode schreiben kann (ganz im Gegensatz zu abstrakten Klassen). |
Ich meinte eigentlich nicht das mehrfache Implementieren(im Sinne von implements) von Interfaces, sondern die tatsächliche Mehrfachvererbung
bei Interfaces selbst (nicht zu verwechseln mit Klassen-Vererbung).
wie z.B.:
public interface Effenberg {
public void mundZu();
}
public interface Stefan {
public void mundAuf();
}
public interface Playboy extends Stefan, Effenberg {
public void blubBlub();
}
hier: Mehrfachvererbung von Interfaces
public class TestMultiple implements Playboy...usw.
bis dänn, O'Dog |
_________________ Ich war Atheist, bis ich erkannte, dass ich Gott bin.
|
|
 |
Parry
Mitglied
Benutzerprofil
Anmeldungsdatum: 22.07.2001
Beiträge: 163
|
Parry Mitglied
14:40:00 21.04.2002 Titel: |
|
Zitieren |
@O'Dog
Das ist keine! Mehrfachvererbung. Das ist nicht mal eine ganz normale Vererbung. Vererbung bedeutet (unter anderem), dass du die Methoden von der geerbten Klasse mitbenutzen kannst. Dieses ist aber bei Interfaces nicht der Fall, du MUSST alle Methoden selbst implementieren.
Egal was du anstellst, Java hat keine Mehrfachvererbung (und braucht es auch nicht) |
|
|
|
 |
O'Dog
Mitglied
Benutzerprofil
Anmeldungsdatum: 24.05.2000
Beiträge: 1198
|
O'Dog Mitglied
15:31:00 21.04.2002 Titel: |
|
Zitieren |
Na ja, im Prinzip sind wir uns ja alle einig, geht eigentlich nur um die Begrifflichkeiten.
Fakt ist das die Methodensignaturen bei einem Subinterface von dem Superinterface geerbt/abgeleitet werden, ein Subinterface kann Methodensignaturen von mehreren Superinterfaces erben/ableiten.
Nennt es Mehrfachvererbung von Interfaces oder
Multiple Ableitbarung damit ist das Kind getauft.
O'Dog |
_________________ Ich war Atheist, bis ich erkannte, dass ich Gott bin.
|
|
 |
Parry
Mitglied
Benutzerprofil
Anmeldungsdatum: 22.07.2001
Beiträge: 163
|
Parry Mitglied
18:02:00 21.04.2002 Titel: |
|
Zitieren |
Na Interfaces implementiert man.
Also würde ich Mehrfachimplementierung sagen |
|
|
|
 |
O'Dog
Mitglied
Benutzerprofil
Anmeldungsdatum: 24.05.2000
Beiträge: 1198
|
O'Dog Mitglied
18:43:00 21.04.2002 Titel: |
|
Zitieren |
Hmm, parry, ich glaub wir haben uns immer noch nicht verstanden.
es geht mir nicht um:
public class MyClass implements InterfaceA, InterfaceB
sondern um:
public interface InterfaceA extends InterfaceB, InterfaceC |
_________________ Ich war Atheist, bis ich erkannte, dass ich Gott bin.
|
|
 |
CengizS
Moderator
Benutzerprofil
Anmeldungsdatum: 28.05.2001
Beiträge: 3502
|
CengizS Moderator
19:36:00 21.04.2002 Titel: |
|
Zitieren |
@O'Dog
Ja es heisst | Code: | | public interface XYZ extends ABC | |
| Code: | | public interface XYZ extends ABC | |
| Code: | | public interface XYZ extends ABC | |
allerdings wird hier nichts vererbt :)
Vielmehr wird mit dieser Art von Delaration nur das Methodenset des Interfaces XYZ mit denen aus ABC sprichwörtlich erweitert. Dies kann man nennen wie man will - ab jetzt gehts in diesem Thread ja auch nur noch um "Begriffsdefinition" für den einen ist das Glas halb voll - für den anderen halb leer. :)
In diesem Sinne einen schönen Sonntag |
_________________ Viele Grüße, Cengiz Şahin
|
|
 |
Parry
Mitglied
Benutzerprofil
Anmeldungsdatum: 22.07.2001
Beiträge: 163
|
Parry Mitglied
20:06:00 21.04.2002 Titel: |
|
Zitieren |
@O'Dog
Ah, jetzt ist mir klar was du meinst.
Dafür kenne ich wirklich keinen eigenen Namen. |
|
|
|
 |
O'Dog
Mitglied
Benutzerprofil
Anmeldungsdatum: 24.05.2000
Beiträge: 1198
|
O'Dog Mitglied
20:15:00 21.04.2002 Titel: |
|
Zitieren |
Na ja, wie auch immer...
jetzt kommt Episode 1 (inkl. 45min Werbung - Rekord) |
_________________ Ich war Atheist, bis ich erkannte, dass ich Gott bin.
|
|
 |