Schnittstellen

Aus Byte-Welt Wiki
Version vom 11. Februar 2012, 06:47 Uhr von AndreUhres (Diskussion | Beiträge) (Das Konzept der Schnittstellen in der Programmierung mit Java)
Zur Navigation springenZur Suche springen

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 seinen Polymorphismus 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 Polymorphismus. 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.