{"id":3313,"date":"2016-04-26T17:59:28","date_gmt":"2016-04-26T15:59:28","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=3313"},"modified":"2016-04-26T17:59:28","modified_gmt":"2016-04-26T15:59:28","slug":"nachtraegliches-implementieren-von-schnittstellen","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2016\/04\/nachtraegliches-implementieren-von-schnittstellen\/","title":{"rendered":"Nachtr\u00e4gliches Implementieren von Schnittstellen"},"content":{"rendered":"<p>Implementiert eine Klasse eine bestimmte Schnittstelle nicht, so kann sich auch nicht am dynamischen Binden \u00fcber diese Schnittstelle teilnehmen, auch wenn sie eine Methoden hat, \u00fcber die eine Schnittstelle abstrahiert. Besitzt zum Beispiel die nicht-finale Klasse FIFA eine \u00f6ffentliche Methode price(), implementiert aber Buyable mit einer gleich benannten Methoden nicht, so l\u00e4sst sich zu einem Trick greifen, sodass eine Implementierung geschaffen wird, die die existierende Methode aus der Klasse und die der Schnittstelle in die Typhierarchie bringt.<\/p>\n<pre>class FIFA {<\/pre>\n<pre>\u00a0 public <strong>double price()<\/strong> { \u2026 }<\/pre>\n<pre>}<\/pre>\n<pre><\/pre>\n<pre>interface\u00a0Buyable\u00a0{\n \u00a0\u00a0<strong>double\u00a0price()<\/strong>;\n }<\/pre>\n<pre><\/pre>\n<pre>class FIFAisBuyable <strong>extends FIFA implements Buyable<\/strong> { }<\/pre>\n<p>Eine neue Unterklasse FIFAisBuyable erbt von der Klasse FIFA und implementiert die Schnittstelle Buyable, sodass der Compiler die existierende price()-Methode mit Vorgabe der Schnittstelle vereinigt. Nun l\u00e4sst sich FIFAisBuyable als Buyable nutzen und dahinter steckt die Implementierung von FIFA. Als Unterklasse bleiben auch alle sichtbaren Eigenschaften der Oberklasse erhalten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Implementiert eine Klasse eine bestimmte Schnittstelle nicht, so kann sich auch nicht am dynamischen Binden \u00fcber diese Schnittstelle teilnehmen, auch wenn sie eine Methoden hat, \u00fcber die eine Schnittstelle abstrahiert. Besitzt zum Beispiel die nicht-finale Klasse FIFA eine \u00f6ffentliche Methode price(), implementiert aber Buyable mit einer gleich benannten Methoden nicht, so l\u00e4sst sich zu einem [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[11],"tags":[],"class_list":["post-3313","post","type-post","status-publish","format-standard","hentry","category-insel"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3313","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=3313"}],"version-history":[{"count":3,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3313\/revisions"}],"predecessor-version":[{"id":3316,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/3313\/revisions\/3316"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=3313"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=3313"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=3313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}