StudySmarter - Die all-in-one Lernapp.
4.8 • +11k Ratings
Mehr als 5 Millionen Downloads
Free
Americas
Europe
Steigst du in das tiefgehende Fachgebiet der Informatik ein, gehört das Verständnis von Polymorphie zu den grundlegenden Kompetenzen. Der vorliegende Artikel behandelt umfassend Polymorphie in der Informatik, definiert das Konzept, erläutert dessen Bedeutung in der Programmierung und beleuchtet dessen Anwendungen in verschiedenen Programmiersprachen wie Java und C++. Des Weiteren wird…
Entdecke über 50 Millionen kostenlose Lernmaterialien in unserer App.
Lerne mit deinen Freunden und bleibe auf dem richtigen Kurs mit deinen persönlichen Lernstatistiken
Jetzt kostenlos anmeldenSteigst du in das tiefgehende Fachgebiet der Informatik ein, gehört das Verständnis von Polymorphie zu den grundlegenden Kompetenzen. Der vorliegende Artikel behandelt umfassend Polymorphie in der Informatik, definiert das Konzept, erläutert dessen Bedeutung in der Programmierung und beleuchtet dessen Anwendungen in verschiedenen Programmiersprachen wie Java und C++. Des Weiteren wird auch eine fundierte Betrachtung zur Wirkung von Polymorphie auf die objektorientierte Programmierung diskutiert und wertvolle Erkenntnisse zu den Vorzügen und Limitationen geboten. So legst du das Fundament, um das Prinzip der Polymorphie umfassend zu verstehen und kompetent in der Programmierung einzusetzen.
In der Programmierung bezeichnet Polymorphie die Fähigkeit, dass Funktionen oder Methoden in verschiedenen Objekten unterschiedlich ausgeführt werden können. Während die gleiche Nachricht (Methode oder Funktion) an verschiedene Objekte gesendet wird, reagiert jedes Objekt entsprechend seiner Klasse oder seinem Typ.
Betrachten wir ein einfaches Beispiel in Java:
class Animal { void sound() { System.out.println("Tiere machen Geräusche"); } } class Cat extends Animal { @Override void sound() { System.out.println("Miau"); } } class Dog extends Animal { @Override void sound() { System.out.println("Wuff"); } }
Es gibt zwei verschiedene Arten von Polymorphie in der Informatik: statische (oder compile-time) Polymorphie und dynamische (oder runtime) Polymorphie. Statische Polymorphie bezieht sich auf Methodenüberladungen, während dynamische Polymorphie auf Methodenüberschreibungen zurückzuführen ist.
In objektorientierten Programmiersprachen bezieht sich die Polymorphie oft auf die dynamische Polymorphie von Laufzeitmethoden. Zum Beispiel kann eine Funktion mit dem Namen "Zeichnen" für verschiedene Klassen unterschiedliche Codeblöcke haben. Jede dieser Klassen kann das Zeichnen auf ihre eigene Weise implementieren, also in gewisser Weise ihre eigene "Form" (poly = viele, morph = form) der Funktion "Zeichnen" annehmen.
Das folgende Beispiel zeigt die Anwendung von Polymorphie in C++. Hier hat die Basisklasse 'Shape' eine virtuelle Methode 'draw()', die in den abgeleiteten Klassen 'Circle' und 'Rectangle' überschrieben wird.
#includeusing namespace std; class Polygon { public: virtual void draw()=0; // Pure virtual function }; class Circle : public Polygon { public: void draw() { cout << "Drawing Circle\n"; } }; class Square : public Polygon { public: void draw() { cout << "Drawing Square\n"; } }; int main() { Polygon *p; // Pointer of Polygon type Circle c; Square s; p = &c p->draw(); // calls draw() of Circle class p = &s p->draw(); // calls draw() of Square class return 0; }
Das folgende Beispiel zeigt ein prägnantes Szenario, in dem Polymorphie in Java verwendet wird. In diesem Beispiel haben wir eine abstrakte Hauptklasse 'Animal' und zwei Unterklassen 'Dog' und 'Cat', die die Methode 'sound()' überschreiben.
abstract class Animal { abstract void makeSound(); } class Dog extends Animal { public void makeSound() { System.out.println("The dog barks"); } } class Cat extends Animal { public void makeSound() { System.out.println("The cat meows"); } } class Main { public static void main(String[] args) { Animal myDog = new Dog(); // Create a Dog object Animal myCat = new Cat(); // Create a Cat object myDog.makeSound(); myCat.makeSound(); } }Achte darauf, das folgende Wissenaus diesen Beispielen in dein weiteres Studium von Polymorphie in der Informatik mitzunehmen: Polymorphie ermöglicht es uns, mit beliebigen abgeleiteten Klassen umzugehen, indem wir einfach mit der Basisklasse arbeiten. Dies führt zu einem flexibleren und erweiterbaren Code.
Vorteile | Beschreibung |
Wiederverwendbarkeit | Ermöglicht es, Quellcode wiederzuverwenden, wodurch Redundanzen vermieden und die Code-Länge reduziert wird. |
Flexibilität | Ermöglicht Flexibilität in Design und Struktur, was insbesondere bei großen Softwareprojekten von Vorteil ist. |
Erweiterbarkeit | Vorhandener Code kann durch neue Klassen und Funktionen erweitert werden, ohne dass der bestehende Code modifiziert werden muss. |
Nachteile | Beschreibung |
Überkompliziert | Die Nutzung von Polymorphie kann dazu führen, dass der Quellcode schwer zu verstehen und daher auch schwerer zu warten ist. |
Laufzeit Fehler | Irrtümliche Verwendung von Polymorphie kann zu Laufzeitfehlern führen, die schwer zu debuggen sind. |
Leistungseinbußen | Ungeschickte Verwendung von Polymorphie oder Overloading/Overriding von Funktionen kann zu Leistungseinbußen führen. |
Karteikarten in Polymorphie27
Lerne jetztWie kann man Polymorphie auf deutsch übersetzen?
Vielgestaltigkeit
Wahr oder falsch
Das Konzept der Polymorphie besagt, dass sich ein Element je nach Kontext anders verhalten kann.
Wahr
Was versteht man unter der Überladung einer Methode?
Wenn in einer Klasse mehrere Methoden mit gleichem Bezeichner und unterschiedlicher Parameterliste vorhanden sind
Ergänze
Das Überladen einer Methode ist eine Form der ________ Polymorphie.
statischen
Wo findet sich bei der Vererbung eine dynamische Polymorphie?
Wenn die Subklasse eine Methode ihrer Basisklasse überschreibt
Ergänze
Die @Override Annotation wird in Java beim ________(1) einer Methode in der Subklasse verwendet und bewirkt, dass der _______(2) ggf. eine Warnung anzeigt.
(1) Überschreiben
(2) Kompiler
Du hast bereits ein Konto? Anmelden
Die erste Lern-App, die wirklich alles bietet, was du brauchst, um deine Prüfungen an einem Ort zu meistern.
Melde dich an für Notizen & Bearbeitung. 100% for free.
Speichere Erklärungen in deinem persönlichen Bereich und greife jederzeit und überall auf sie zu!
Mit E-Mail registrieren Mit Apple registrierenDurch deine Registrierung stimmst du den AGBs und der Datenschutzerklärung von StudySmarter zu.
Du hast schon einen Account? Anmelden