Aus dem Kurs: Objektorientierte Programmierung (OOP) mit C#
Interfaces – Tutorial zu C#
Aus dem Kurs: Objektorientierte Programmierung (OOP) mit C#
Interfaces
Interfaces sind ähnlich wie abstrakte Basisklassen, haben aber keine Implementierung. Sie definieren einfach eine Menge an Methoden oder Properties, und weil dem so ist, weil ein Interface keine Implementierung hat, deshalb kann eine Klasse mehrere Interfaces implementieren. Man sagt auch nicht mehr, dass eine Klasse ein Interface erbt, weil sie ja keine Implementierung beerbt. Eine Klasse, die ein Interface implementiert, verpflichtet sich, alle Methoden und Properties dieses Interfaces zu implementieren. Und das will ich jetzt gerade mal in der Praxis zeigen. Nehmen wir mal an, wir haben hier eine Basis-Klasse, die hat eine Methode foo, und dann haben wir Klassen, die davon abgeleitet sind. Diese Klasse Middle1, die implementiert jetzt hier so eine Methode bar und überschreibt die Methode foo der Basis-Klasse. So eine ähnliche Klasse machen wir jetzt noch mal, die wollen wir mal Middle2 nennen, so und dann haben wir eine End-Klasse und die soll jetzt von Middle1 des bar erben, von Middle2 eine andere Methode, die baz heißt und sie soll dieses foo werden. Sieht also etwa so aus. Da haben wir jetzt ein Problem. Die End-Klasse kann nicht mehrere Basis-Klassen aufweisen Middle1 und Middle2. Also wir können die Klasse End, auch wenn wir wollen, gar nicht von zwei unterschiedlichen Klassen ableiten. Und der Grund dafür liegt in solchen Konflikten, die hier entstehen können weil man eigentlich gar nicht weiß, woher diese End-Klasse die Implementierung von foo nehmen soll. Soll es die aus Middle1 oder die aus Middle2 sein. Das ist eigentlich gar nicht angebbar. Und da springen jetzt die Inetrfaces ein. Ich kann also jetzt hier statt class interface schreiben. Und dann muss ich das hier so ein bisschen abändern, weil Interfaces keine Modifizierer kennen. So dieses interface Middle1, das definiert jetzt die Methode bar und dann haben wir dieses interface Middle1, as implementiert die Methode baz, und jetzt kommt unsere class End und die kann jetzt sowohl das eine Interface, als auch das andere Interface implementieren. Und jetzt haben wir hier drei Methoden, die Methode foo, Methode bar und baz. Und die können wir jetzt implementieren nach Gust. Wir können aber natürlich auch dafür sorgen, dass wir hier jetzt Relationen zu anderen Klassen herstellen, sogenannten Behavior-Klassen, die dann wiederum Implementierungen für diese Interfaces mitbringen. Das bleibt uns also jetzt völlig frei überlassen. Aber dieses Problem, dass wir jetzt dieses bar und baz aus verschiedenen Basisinterfaces erben wollen, dieses Problem hätten wir an der Stelle gelöst.
Üben mit Projektdateien
Laden Sie die Dateien herunter, die von den Trainer:innen verwendet werden. So können Sie mitlesen und durch Ansehen, Zuhören und Üben lernen.
Inhalt
-
-
-
-
(Gesperrt)
Kapselung und Separation of Concerns13 Min. 16 Sek.
-
(Gesperrt)
Objektbeziehungen6 Min. 23 Sek.
-
(Gesperrt)
Vererbung1 Min. 38 Sek.
-
(Gesperrt)
Abstraktion5 Min. 31 Sek.
-
(Gesperrt)
Methoden überschreiben4 Min. 9 Sek.
-
(Gesperrt)
Polymorphie3 Min. 10 Sek.
-
Interfaces3 Min. 35 Sek.
-
(Gesperrt)
Entkopplung2 Min. 40 Sek.
-
(Gesperrt)
-