Inhaltsverzeichnis
Formen des Polymorphismus
1. Überlastung des Bedieners
2. Funktionsüberladung
Wichtige Punkte für Polymorphismus in C#

Polymorphismus in C#

Sep 03, 2024 pm 03:26 PM
c# c# tutorial

Polymorphismus ist ein Konzept, das in objektorientierten Programmiersprachen wie C# umgesetzt wird, bei denen ein Operator oder eine funktionale Methode während des Ausführungsprozesses mehr als eine Form annehmen kann. Es wird häufig für die Implementierung der Vererbung im Programm verwendet und wird in zwei Methoden eingeteilt, nämlich Operatorüberladung und Funktionsüberladung. Mit einfachen Worten kann Polymorphismus als eine Technik zum Ändern der Basisklasse mithilfe der abgeleiteten Klasse erklärt werden, wobei beide Klassen unterschiedliche Eigenschaften besitzen.

Das folgende Diagramm veranschaulicht die Funktionsweise des Polymorphismus:

Polymorphismus in C#

Diese Abbildung erklärt, dass Ton das Ausgangsobjekt ist, aus dem Töpfe, Schüsseln und Spielzeugobjekte hergestellt werden. Alle diese Objekte unterscheiden sich voneinander, haben jedoch die Eigenschaften von Ton. Diese drei Objekte haben unterschiedliche Formen und werden auf unterschiedliche Weise verwendet, auch wenn sie aus demselben Material, Ton, hergestellt sind.

Formen des Polymorphismus

Im Folgenden sind die 2 Formen des Polymorphismus aufgeführt:

1. Überlastung des Bedieners

Ein Operator kann basierend auf der Art der Operanden, mit denen er arbeitet, unterschiedliche Ausgaben ausgeben. Dies wird als Operatorüberladung bezeichnet. Beispielsweise kann der Operator „+“ eine Addition für zwei ganze Zahlen durchführen, während er zwei Zeichenfolgen verketten kann. Somit kann derselbe Operator auf zwei verschiedene Arten verwendet werden. Der Additionsoperator addiert im Allgemeinen zwei Zahlen. Bei komplexen Zahlen ist die Addition jedoch etwas anders, da hier die entsprechenden Realteile und Imaginärteile separat addiert werden. Hier ist ein Beispielcode, der zeigt, wie der Operator „+“ überladen werden kann, um komplexe Zahlen hinzuzufügen.

Code:

using System;
namespace Overload {
class Complex
{
public double x;
public double y;
// no-argument constructor
public Complex() {}
// parameterized constructor
public Complex(double real, double img)
{
x = real;
y = img;
}
// Overloading of Binary "+" operator
public static Complex operator + (Complex c1,
Complex c2)
{
Complex c3 = new Complex();
c3.x = c1.x + c2.x;
c3.y = c1.y + c2.y;
return c3;
}
// function to display result
public void display()
{
Console.WriteLine("{0} + {1}i", x,y);
}
}
class CalNum {
// Driver Code
static void Main(string[] args)
{
Complex num1 = new Complex(2.5,3.5);
Complex num2 = new Complex(1.2,6.5);
Complex num3 = num1 + num2;
Console.Write("c1 = ");
num1.display();
Console.Write("c2 = ");
num2.display();
Console.Write("c3 = ");
num3.display();
}
}
}
Nach dem Login kopieren

Ausgabe:

Polymorphismus in C#

Diese Ausgabe veranschaulicht die Operatorüberladung zum Addieren zweier komplexer Zahlen. Der Code zeigt sowohl eine Operatorüberladung als auch eine Funktionsüberladung.

2. Funktionsüberladung

Eine Funktion kann je nach Anzahl der Parameter sowie deren Rückgabetypen und dem Rückgabetyp der Funktion unterschiedliche Ausgaben liefern. Der oben genannte Code behandelt auch das Überladen von Funktionen mithilfe eines Konstruktors. Der Code enthält zwei Konstruktoren. Einer ist der Standardkonstruktor, der leer bleibt, während der andere ein parametrisierter Konstruktor ist, der verwendet wird, um die komplexe Zahl mit den als Parameter genannten Werten zu initialisieren.

Bei dem in der Abbildung dargestellten Beispiel besteht die Funktion darin, den Ton zu formen, und die Strichrichtung ist das Element, das zum Formen des Tons vorgesehen ist. Durch unterschiedliche Strichrichtungen wird Ton in einen Topf, eine Schüssel bzw. ein Spielzeug verwandelt.

Code:

using System;
using System.Collections.Generic;
public class Clay
{
// A few example members
public int Height { get; set; }
public int strokeDirection { get; set; }
// Virtual method
public virtual void Mould()
{
Console.WriteLine("Beginning to mould the clay");
}
}
class Pot : Clay
{
public override void Mould()
{
// Code to make a pot Console.WriteLine("Making a pot");
base.Mould();
}
}
class Bowl : Clay
{
public override void Mould()
{
// Code to make a bowl
Console.WriteLine("Making a bowl");
base.Mould();
}
}
class Toy : Clay
{
public override void Mould()
{
// Code to make a toy
Console.WriteLine("Making a toy");
base.Mould();
}
}
class Program
{
static void Main(string[] args)
{
// Illustrating Polymorphism #1: a Pot, Bowl and Toy
// can all be used wherever Clay is expected. No cast is
// needed because an implicit conversion exists from a derived
// class to its base class.
var items = new List<Clay>
{
new Pot(),
new Bowl(),
new Toy()
};
// Polymorphism at work #2: the virtual method Mould is
// invoked on each of the derived classes, not the base class.
foreach (var item in items)
{
item.Mould();
}
}
}
Nach dem Login kopieren

Ausgabe:

Polymorphismus in C#

Wie Sie vielleicht im Code bemerkt haben, ist die Tonklasse die übergeordnete Klasse, deren untergeordnete Klassen Topf-, Spielzeug- und Schüsselklassen sind. Die Methode „Mould“ ist sowohl in der übergeordneten Klasse als auch in der untergeordneten Klasse mit derselben Funktionssignatur definiert. Wenn also ein Objekt der untergeordneten Klasse erstellt wird und die Methode Mould aufruft, wird die Methode der Basisklasse durch die Methode der untergeordneten Klasse überschrieben. Somit sehen wir die Ausgabe der Methode der untergeordneten Klasse. Der obige Code zeigt das Überschreiben und nicht das Überladen von Methoden, um den Polymorphismus zu veranschaulichen.

Wichtige Punkte für Polymorphismus in C#

Die Punkte, die bei Polymorphismus in C# zu beachten sind:

  • Überladen unterscheidet sich vom Überschreiben. Das Überladen hat unterschiedliche Funktionssignaturen, während das Überschreiben dieselben Funktionssignaturen hat.
  • Polymorphismus bezieht sich auf die Änderung des Verhaltens einer Oberklasse in der Unterklasse.
  • Vererbung bezieht sich auf die Verwendung der Struktur und des Verhaltens einer Superklasse in einer Unterklasse.

Im Folgenden sind die wichtigsten Erkenntnisse aufgeführt:

  • Polymorphismus ist eines der wichtigsten Paradigmen der objektorientierten Programmierung.
  • Funktionsüberladung ändert die Funktion gemäß den Rückgabetypen und Parametern der Funktion in der geerbten Klasse.
  • Operatorüberladung ändert die Operatordefinition gemäß den angegebenen Parametern.
  • Polymorphismus wird verwendet, um die Vererbung zu implementieren. Es entscheidet zur Laufzeit, die untergeordnete Klassenmethode mithilfe der Methodenüberschreibung aufzurufen.

Das obige ist der detaillierte Inhalt vonPolymorphismus in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
<🎜> obscur: Expedition 33 - So erhalten Sie perfekte Chroma -Katalysatoren
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1677
14
PHP-Tutorial
1278
29
C#-Tutorial
1257
24
Active Directory mit C# Active Directory mit C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Active Directory mit C#. Hier besprechen wir die Einführung und die Funktionsweise von Active Directory in C# sowie die Syntax und das Beispiel.

Zufallszahlengenerator in C# Zufallszahlengenerator in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zum Zufallszahlengenerator in C#. Hier besprechen wir die Funktionsweise des Zufallszahlengenerators, das Konzept von Pseudozufallszahlen und sicheren Zahlen.

C#-Datenrasteransicht C#-Datenrasteransicht Sep 03, 2024 pm 03:32 PM

Leitfaden zur C#-Datenrasteransicht. Hier diskutieren wir die Beispiele, wie eine Datenrasteransicht aus der SQL-Datenbank oder einer Excel-Datei geladen und exportiert werden kann.

Fakultät in C# Fakultät in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zur Fakultät in C#. Hier diskutieren wir die Einführung in die Fakultät in C# zusammen mit verschiedenen Beispielen und Code-Implementierungen.

Der Unterschied zwischen Multithreading und asynchronem C# Der Unterschied zwischen Multithreading und asynchronem C# Apr 03, 2025 pm 02:57 PM

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, während asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, während asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, während der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abhängt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsfähigkeit asynchron verwenden müssen.

Muster in C# Muster in C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Mustern in C#. Hier besprechen wir die Einführung und die drei wichtigsten Arten von Mustern in C# zusammen mit ihren Beispielen und der Code-Implementierung.

Primzahlen in C# Primzahlen in C# Sep 03, 2024 pm 03:35 PM

Leitfaden zu Primzahlen in C#. Hier besprechen wir die Einführung und Beispiele von Primzahlen in C# sowie die Codeimplementierung.

So ändern Sie das Format von XML So ändern Sie das Format von XML Apr 03, 2025 am 08:42 AM

Es gibt verschiedene Möglichkeiten, XML -Formate zu ändern: manuell mit einem Texteditor wie Notepad bearbeiten; automatisch Formatierung mit Online- oder Desktop -XML -Formatierungswerkzeugen wie XMLBeautifier; Definieren Sie Conversion -Regeln mithilfe von XML -Conversion -Tools wie XSLT; oder analysieren und mit Verwendung von Programmiersprachen wie Python arbeiten. Seien Sie vorsichtig, wenn Sie die Originaldateien ändern und sichern.

See all articles