Abstrakte Klasse
Eine abstrakte Klasse ist eine Klasse, die nur als Basisklasse anderer Klassen gedacht ist. Der Modifikator 'abstract' wird verwendet, um eine Klasse abstrakt darzustellen. Ein abstrakter Modifikator gibt an, dass einige Implementierungen fehlen, die in der daraus abgeleiteten Klasse implementiert werden müssen. Die abstrakte Klasse kann abstrakte und nicht abstrakte Mitglieder haben. Eine abstrakte Klasse sollte mindestens eine abstrakte Methode haben, andernfalls kann diese Klasse nicht als 'abstrakt' deklariert werden.
Beispiel für eine abstrakte Klasse in C #:
1234567891011 | abstrakte Klasse MyCircle abstract public int Area (); Klasse MyArea: MyCircle public override int Area () Rückkehrseite * side; ..... |
Wie im obigen Beispiel gezeigt, wird die abstrakte Methode 'Area' in der MyCircle-Klasse in der abgeleiteten Klasse MyArea überschrieben.
Schnittstelle
Eine Schnittstelle enthält nur die Deklaration von Elementen, einschließlich Methoden, Eigenschaften, Ereignissen oder Indexern. Es enthält nicht die Implementierung dieser Mitglieder. Eine Klasse oder Struktur implementiert die Schnittstelle. Sie muss die Definition der in der Schnittstelle deklarierten Methoden bereitstellen. Das bedeutet, dass eine Schnittstelle eine Standardstruktur bereitstellt, der die abgeleitete Klasse folgen muss.
Beispiel einer Schnittstelle in C #:
12345678910111213141516171819202122 | using System.Collections.Generic; using System.Linq; using System.Text; Namespace MyName öffentliche Schnittstelle MyData void getdata (); void showdata (); public class NameData: MyData public double getdata () Zeichenfolgenname; Console.WriteLine ("Geben Sie den Namen ein:"); name = Console.ReadLine (); public void showdata () Console.WriteLine ("Mein Name ist:", Name); |
Wie im obigen Beispiel gezeigt, enthält die Schnittstelle MyData die Methodendeklaration getdata () und showdata (). Die Klasse NameData, die diese Schnittstelle implementiert, sollte die Definition der in der MyData-Schnittstelle deklarierten Methoden angeben.
Unterschied zwischen abstrakter Klasse und Schnittstelle