{"id":378707,"date":"2024-11-01T07:13:29","date_gmt":"2024-11-01T07:13:29","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=content_hub&#038;p=378707"},"modified":"2024-11-01T07:13:29","modified_gmt":"2024-11-01T07:13:29","slug":"was-ist-polymorphismus","status":"publish","type":"content_hub","link":"https:\/\/www.ninjaone.com\/de\/it-hub\/it-service-management\/was-ist-polymorphismus\/","title":{"rendered":"Was ist Polymorphismus?"},"content":{"rendered":"<p>In der objektorientierten Programmierung (OOP) bezieht sich Polymorphismus auf die F\u00e4higkeit eines Objekts, mehr als eine Form anzunehmen. Der Begriff leitet sich von den griechischen W\u00f6rtern &#8218;poly&#8216; (f\u00fcr &#8218;viele&#8216;) und &#8218;morph&#8216; (f\u00fcr &#8218;Formen&#8216;) ab und zeigt, dass polymorphe Objekte je nach Kontext unterschiedliche Operationen ausf\u00fchren k\u00f6nnen.<\/p>\n<p>OOP bezieht sich auf einen Programmieransatz, der sich auf die Verwendung von Objekten konzentriert. Im Wesentlichen werden Objekte durch ihr Verhalten, auch bekannt als Methode, und ihre Attribute definiert. Mit OOP definieren und differenzieren Programmierer Objekte weiter, indem sie Klassen von Objekten erstellen. Java erlaubt auch die Erstellung einer Unterklasse, d. h. einer neu erstellten Klasse, die Attribute einer bereits bestehenden Klasse \u00fcbernimmt. Die Originalklasse, aus der diese Attribute kopiert wurden, wird Oberklasse oder Superklasse genannt.<\/p>\n<h2>Welche Arten von Polymorphismus gibt es in Java?<\/h2>\n<p>Polymorphismus (auch Polymorphie) in Java ist eines der Kernkonzepte der OOP. Er erm\u00f6glicht es Programmierer:innen, konsistenten Code zu schreiben, der sich je nach Ober- oder Unterklasse, mit der die Methode oder das Objekt interagiert, unterschiedlich verhalten kann.<\/p>\n<p>In Java gibt es zwei Arten von Polymorphie:<\/p>\n<ol>\n<li aria-level=\"1\">\n<h3>Polymorphismus zur Kompilierzeit<\/h3>\n<\/li>\n<\/ol>\n<p>Auch bekannt als statischer Polymorphismus, wird diese Art von Polymorphie w\u00e4hrend der Codekompilierung aufgel\u00f6st, wenn der Code in Maschinenanweisungen umgewandelt wird. Dies wird in der Regel durch \u00dcberladen erreicht, wenn mehrere Methoden in derselben Klasse denselben Namen, aber unterschiedliche Parameter haben. Dies erm\u00f6glicht es einer Klasse, einen \u00e4hnlichen Vorgang je nach Eingabe unterschiedlich auszuf\u00fchren. Der Polymorphismus zur Kompilierzeit bietet schnellere Ausf\u00fchrungszeiten und Wiederverwendbarkeit, da die auszuf\u00fchrende Methode zur Kompilierzeit bestimmt wird. Allerdings mangelt es ihm an Flexibilit\u00e4t, da alle m\u00f6glichen Methodenanweisungen zur Kompilierzeit bekannt sein m\u00fcssen, wodurch es weniger anpassungsf\u00e4hig an \u00c4nderungen ist.<\/p>\n<ol>\n<li aria-level=\"1\">\n<h3>Polymorphismus zur Laufzeit<\/h3>\n<\/li>\n<\/ol>\n<p>Der Laufzeit-Polymorphismus, auch bekannt als dynamische Bindung oder sp\u00e4te Bindung, wird w\u00e4hrend der Programmausf\u00fchrung aufgel\u00f6st. Diese Art von Polymorphismus wird in der Regel durch Methoden\u00fcberschreibung erreicht, wobei eine Unterklasse eine spezifische Implementierung einer Methode bereitstellt, die bereits in ihrer Oberklasse definiert ist. Die auszuf\u00fchrende Methode wird zur Laufzeit bestimmt, was eine gr\u00f6\u00dfere Anpassungsf\u00e4higkeit und Flexibilit\u00e4t des Codes erm\u00f6glicht. Dies f\u00fchrt jedoch zu langsameren Ausf\u00fchrungszeiten als beim Polymorphismus zur Kompilierzeit, da die Maschine die Methode zur Laufzeit bestimmt.<\/p>\n<h2>Welche Vorteile gibt es?<\/h2>\n<ul>\n<li aria-level=\"1\">\n<h3>Wiederverwendbarkeit<\/h3>\n<\/li>\n<\/ul>\n<p>Die Polymorphie erm\u00f6glicht die Entwicklung eines flexibleren und wiederverwendbaren Codes. Er erm\u00f6glicht es Programmierer:innen, Code zu erstellen, der mit Objekten funktioniert, unabh\u00e4ngig von der spezifischen Klasse des jeweiligen Objekts.<\/p>\n<ul>\n<li aria-level=\"1\">\n<h3>Flexibilit\u00e4t<\/h3>\n<\/li>\n<\/ul>\n<p>Anstatt Codes \u00e4ndern zu m\u00fcssen, erm\u00f6glicht der Polymorphismus Programmierer:innen, die Funktionalit\u00e4t einfach zu erweitern.<\/p>\n<ul>\n<li aria-level=\"1\">\n<h3>Vereinfachter Code<\/h3>\n<\/li>\n<\/ul>\n<p>Polymorphismus erm\u00f6glicht es Programmierer:innen, einen pr\u00e4gnanteren Code zu erstellen. Polymorphe Codes sind einfach, weil sie die genaue urspr\u00fcngliche Anweisung beibehalten, aber die F\u00e4higkeit haben, sich selbst zu ver\u00e4ndern.<\/p>\n<h2>Welche Nachteile gibt es?<\/h2>\n<ul>\n<li aria-level=\"1\">\n<h3>Leistungsprobleme<\/h3>\n<\/li>\n<\/ul>\n<p>Eine Maschine kann Schwierigkeiten haben, einen polymorphen Code auszuf\u00fchren, insbesondere wenn er zu komplex wird.<\/p>\n<ul>\n<li aria-level=\"1\">\n<h3>Schwierig zu implementieren<\/h3>\n<\/li>\n<\/ul>\n<p>Polymorphe Codes sind aufgrund der Vielfalt der Variablen schwieriger zu implementieren.<\/p>\n<h2>Fazit<\/h2>\n<p>Als eines der Kernelemente von OOP bietet die Polymorphie Programmierer:innen eine M\u00f6glichkeit, flexiblen Code zu erstellen, der leicht erweitert oder angepasst werden kann. Der Polymorphismus vereinfacht die Interaktion zwischen Methoden und Klassen, um einen konsistenten, anpassbaren und wiederverwendbaren Code zu gew\u00e4hrleisten. Das Verst\u00e4ndnis und die korrekte Implementierung von Polymorphismus kann zu einer Verbesserung der <a href=\"https:\/\/www.ninjaone.com\/de\/effizienz\/\">Effizienz<\/a> bei der <a href=\"https:\/\/www.ninjaone.com\/blog\/high-code-vs-low-code-vs-no-code\/\">Kodierung<\/a> und Programmierung f\u00fchren.<\/p>\n","protected":false},"author":151,"featured_media":0,"parent":0,"template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":""},"hub_categories":[4187],"class_list":["post-378707","content_hub","type-content_hub","status-publish","hentry","content_hub_category-it-service-management"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/content_hub\/378707","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/content_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/types\/content_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/users\/151"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media?parent=378707"}],"wp:term":[{"taxonomy":"content_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/hub_categories?post=378707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}