BESTE WEBSITE FÜR WEBENTWICKLER
C# Sprache. W3Schools auf Deutsch. Unterricht für Anfänger

Ua En Es

C# Abstraktion


Abstrakte Klassen und Methoden

Datenabstraktion ist der Prozess, bei dem bestimmte Details ausgeblendet und dem Benutzer nur wesentliche Informationen angezeigt werden.
Abstraktion kann entweder mit abstrakten Klassen oder erreicht werden schnittstellen (worüber Sie im nächsten Kapitel mehr erfahren werden).

Das Schlüsselwort abstract wird für Klassen und Methoden verwendet:

  • Abstrakte Klasse: ist eine eingeschränkte Klasse, die nicht zum Erstellen von Objekten verwendet werden kann (um darauf zuzugreifen, muss sie von einer anderen Klasse geerbt werden).
  • Abstrakte Methode: kann nur in einer abstrakten Klasse verwendet werden und hat keinen Hauptteil. Der Hauptteil wird von der abgeleiteten Klasse bereitgestellt (geerbt von).

Eine abstrakte Klasse kann sowohl abstrakte als auch reguläre Methoden haben:

abstract class Animal
{
  public abstract void animalSound();
  public void sleep()
  {
    Console.WriteLine("Zzz");
  }
}

Aus dem obigen Beispiel geht hervor, dass es nicht möglich ist, ein Objekt der Klasse „Animal“ zu erstellen:

Animal myObj = new Animal(); // Es wird ein Fehler generiert (Es kann keine Instanz der abstrakten Klasse oder Schnittstelle erstellt werden 'Animal')

Um auf die abstrakte Klasse zuzugreifen, muss sie von einer anderen Klasse geerbt werden. Konvertieren wir die Animal-Klasse, die wir im Kapitel C#-Polymorphismus verwendet haben, in eine abstrakte Klasse.

Erinnern Sie sich aus dem Kapitel zur Vererbung daran, dass wir das Symbol : verwenden, um von einer Klasse zu erben, und dass wir das Verwenden Schlüsselwort override zum Überschreiben der Basisklassenmethode.

Beispiel

// Abstrakte Klasse
abstract class Animal
{
  // Abstrakte Methode (hat keinen Körper)
  public abstract void animalSound();
  // Reguläre Methode
  public void sleep()
  {
    Console.WriteLine("Zzz");
  }
}

// Abgeleitete Klasse (von Animal erben)
class Pig : Animal
{
  public override void animalSound()
  {
    // Der Hauptteil von animalSound() wird hier bereitgestellt
    Console.WriteLine("Das Schwein sagt: Pipi");
  }
}

class Program
{
  static void Main(string[] args)
  {
    Pig myPig = new Pig(); // Erstellen Sie ein Pig-Objekt
    myPig.animalSound();  // Rufen Sie die abstrakte Methode auf
    myPig.sleep();  // Rufen Sie die reguläre Methode auf
  }
}

Try it Yourself »

Warum und wann sollten abstrakte Klassen und Methoden verwendet werden?

Um Sicherheit zu erreichen, blenden Sie bestimmte Details aus und zeigen Sie nur die wichtigen Details eines Objekts an.

Hinweis: Abstraktion kann auch mit Schnittstellen erreicht werden, worüber Sie im nächsten Kapitel mehr erfahren werden.