Schnittstellen: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K (Siehe auch)
K (Siehe auch)
Zeile 25: Zeile 25:
 
. Dort wird als Beispiel der abstrakte Obertyp "Buyable" als "interface" vorgestellt, welches die abstrakte Methode '''public int getPrice();''' beinhaltet. Nach dem Prinzip der Polymorphie, sind alle konkreten Untertypen (zum Beispiel Computer, Auto, Bier, Apfel, Hund, ...) im abstrakten Obertyp "Buyable" gekapselt. Aus diesem Grund wird der abstrakte Obertyp in diesem Beitrag mit einer Schablone veranschaulicht, welche an einer bestimmten Stelle einen Ausschnitt (Loch) hat: über ein Objekt gelegt, macht sie an dieser '''Schnittstelle''' die '''abstrakte Methode''' sichtbar und versteckt alles andere.
 
. Dort wird als Beispiel der abstrakte Obertyp "Buyable" als "interface" vorgestellt, welches die abstrakte Methode '''public int getPrice();''' beinhaltet. Nach dem Prinzip der Polymorphie, sind alle konkreten Untertypen (zum Beispiel Computer, Auto, Bier, Apfel, Hund, ...) im abstrakten Obertyp "Buyable" gekapselt. Aus diesem Grund wird der abstrakte Obertyp in diesem Beitrag mit einer Schablone veranschaulicht, welche an einer bestimmten Stelle einen Ausschnitt (Loch) hat: über ein Objekt gelegt, macht sie an dieser '''Schnittstelle''' die '''abstrakte Methode''' sichtbar und versteckt alles andere.
  
* [[Interface]]
+
* [[Interface_(Java)|Interface]]
  
 
[[Kategorie:Java]]
 
[[Kategorie:Java]]
 
[[Kategorie:Java Grundlagen]]
 
[[Kategorie:Java Grundlagen]]
 
[[Kategorie:Tutorials (Java)]]
 
[[Kategorie:Tutorials (Java)]]

Version vom 16. Juli 2017, 11:00 Uhr

Das Konzept der Schnittstellen in der Programmierung mit Java

Schnittstellen sind die Verbindung eines Objektes zum Benutzercode. Dieser kann dann zu den Schnittstellen programmieren, ohne sich um die versteckte Implementierung des Objekts kümmern zu müssen:

Schnittstellen.JPG

In Java gibt es abstrakte Methoden, mit denen wir die Schnittstellen von ihrer Implementierung trennen können. Eine abstrakte Methode ist ein Methodenkopf ohne Rumpf. Sie wird mit "public/protected abstract" gekennzeichnet und kann in einem Interface oder in einer abstrakten Basisklasse deklariert werden. Das Interface (oder die abstrakte Basisklasse) stellt dann seinerseits einen abstrakten Obertyp dar. Beispiel:

Paintable.JPG

Wenn der deklarierte Typ einer Variablen vom abstrakten Obertyp ist, können wir seine Polymorphie nutzen, ohne uns um die konkreten Untertypen kümmern zu müssen. Die Objekte, die der Variablen zur Laufzeit zugewiesenen werden, können von irgendeinem Untertyp sein, über den der Benutzercode nichts wissen muss:

Benutzercode.JPG

In Java hängt das Konzept der Schnittstellen also eng zusammen mit den Begriffen abstrakte Methode, abstrakter Obertyp (Interface oder abstrakte Basisklasse) und Polymorphie. Es ermöglicht das Programmieren zu den Schnittstellen, ohne Festlegung von konkreten Implementierungen. Dadurch ist der Benutzercode weniger anfällig für Veränderungen in den Einzelheiten der Implementierung.

Sprachgebrauch

Das Wort Schnittstelle ist im Java-Sprachgebrauch überladen. Im vorliegenden Artikel hat es die Bedeutung von abstrakte Methode. Daneben wird es aber auch oft als deutsche Übersetzung für das Java-Konstrukt interface benutzt. Einerseits macht das Sinn, da ein "interface" ja abstrakte Methoden enthält, andererseits passt es aber nur bedingt, weil eine abstrakte Basisklasse ebenfalls abstrakte Methoden enthält. Im vorliegenden Artikel werden deshalb die Begriffe "interface" und "abstrakte Basisklasse" unter dem allgemeineren Begriff abstrakter Obertyp zusammengefasst. Der Begriff "abstrakter Obertyp" bietet zudem eine ideale Überleitung zur Polymorphie, die ja die Beziehungen zwischen Ober- und Untertypen beschreibt.

Siehe auch

. Dort wird als Beispiel der abstrakte Obertyp "Buyable" als "interface" vorgestellt, welches die abstrakte Methode public int getPrice(); beinhaltet. Nach dem Prinzip der Polymorphie, sind alle konkreten Untertypen (zum Beispiel Computer, Auto, Bier, Apfel, Hund, ...) im abstrakten Obertyp "Buyable" gekapselt. Aus diesem Grund wird der abstrakte Obertyp in diesem Beitrag mit einer Schablone veranschaulicht, welche an einer bestimmten Stelle einen Ausschnitt (Loch) hat: über ein Objekt gelegt, macht sie an dieser Schnittstelle die abstrakte Methode sichtbar und versteckt alles andere.