Swing JButton-Konstruktor Icon-Parameter (Verständnisfrage)

memo1990

Aktives Mitglied
Hallo zusammen,

ich habe eine Frage bezüglich zum (..., Icon icon)-Parameter vom JButton-Konstruktor.

Und zwar verlangt ja der Konstruktor von JButton ein Objekt von "Icon". Laut Java-API Dokumentation ist aber "Icon" keine Klasse, sondern eine Schnittstelle und man übergibt dem Parameter ja auch ein Objekt der Klasse "ImageIcon". Diese Klasse implementiert aber wiederum die Schnittstelle "Icon".

Heißt das, wenn Klasse A eine Schnittstelle B implementiert und ich dann eine Instanz von Klasse A erstelle, wird das Objekt als Typ von A und als B gesehen? Wie bei einer abgeleiteten Klasse? 😕

Gesendet von meinem GT-I9100 mit Tapatalk 2
 
Wenn B als Parameter verlangt wird, dann siehst du nicht A sondern B. Also nur das was die Schnittstelle vorraussetzt, denn das reicht ja dann um mit dem Parameter alles zu machen was gemacht werden soll. Wenn A darüber hinaus noch zusätzliche public-Methoden anbietet, so siehst du diese dennoch nicht, da aus Sicht der verwendenden Klasse B überreicht wird.
 
OK. Wenn du die Sichtbarkeit der Methoden von Klassen bzw. Schnittstellen meinst, das habe ich verstanden. So habe ich das jetzt zumindest raus gelesen.

Meine Frage ist, ob ein Objekt der Klasse A auch als Typ von Schnittstelle B angesehen werden kann, wenn Klasse A Schnittstelle B erbt?

Gesendet von meinem GT-I9100 mit Tapatalk 2
 
sicher kann es das .. Eine Schnittstelle dient dazu einen Vertrag festzulegen, der erfüllt sein muss. Was ein Objekt, welches die Schnittstelle darüber hinaus noch alles kann, ist dann völlig egal. Daher reicht es auch aus, es als B zu betrachten und nicht die implementierende Klasse.
 
OK. Wenn du die Sichtbarkeit der Methoden von Klassen bzw. Schnittstellen meinst, das habe ich verstanden. So habe ich das jetzt zumindest raus gelesen.

Meine Frage ist, ob ein Objekt der Klasse A auch als Typ von Schnittstelle B angesehen werden kann, wenn Klasse A Schnittstelle B erbt?

Man erbt keine Schnittstelle, sondern man implementiert diese. Und das Stichwort wäre hier wohl Polymorphie kannst dir es ja mal bisschen durchlesen.
 
Man erbt keine Schnittstelle, sondern man implementiert diese. Und das Stichwort wäre hier wohl Polymorphie kannst dir es ja mal bisschen durchlesen.

Genau, das Wort "Polymorphie" ist mir unterwegs nicht eingefallen. Denn im Buch :rtfm: habe ich schon darüber gelesen, dass es dafür auch eine Bezeichnung gibt. 😉
Nur bin ich nicht darüber schlau geworden, ob das Ganze mit Polymorphie auch für Schnittstellen gilt und nicht nur von Klasse zu Klasse.

Danke! :thumbup:
 
Zuletzt bearbeitet:
Genau, das Wort "Polymorphie" ist mir unterwegs nicht eingefallen. Denn im Buch :rtfm: habe ich schon darüber gelesen, dass es dafür auch eine Bezeichnung gibt. 😉
Nur bin ich nicht darüber schlau geworden, ob das Ganze mit Polymorphie auch für Schnittstellen gilt und nicht nur von Klasse zu Klasse.

Danke! :thumbup:

Ich weiß nicht, wie gut du Java bereits beherrscht, aber wenn du noch am Anfang stehst, würde ich dir empfehlen erstmal die Grundlagen richtig zu lernen, anschließend kannst du dich dann auf Polymorphie o. ä. stürzen
 
Ich weiß nicht, wie gut du Java bereits beherrscht, aber wenn du noch am Anfang stehst, würde ich dir empfehlen erstmal die Grundlagen richtig zu lernen, anschließend kannst du dich dann auf Polymorphie o. ä. stürzen

Ich bin gerade dabei Java zu lernen. Habe mir das Buch "Jetzt lerne ich Java 7" :rtfm: gekauft und bin schon fast fertig mit dem Buch. 😉 Also die Grundlagen beherrsche ich schon ziemlich gut, natürlich nicht alles, wie z.B. dieses Thema hier.

Im Buch kam auch das Thema mit "Polymorphie" vor, nur nicht bezüglich mit Schnittstellen, sondern nur mit Klassen. Das heißt, ich weiß das eine abgeleitete Klasse auch als Datentyp der Basisklasse ist, nur mit Schnittstellen wusste ich das nicht. Jetzt weiß ich das es mit Schnittstellen auch so ist. 😉

Das Thema "Schnittstelle" an sich kam natürlich schon vor. 😀
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben