Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen OOP-Prinzipien: Abstraktion | Oop
Java OOP
course content

Kursinhalt

Java OOP

Java OOP

1. Wie Arbeitet Man mit Einer IDE?
2. Oop
3. Schnittstelle

book
OOP-Prinzipien: Abstraktion

Abstraktion

Wir sind also zum letzten, aber sehr wichtigen Prinzip der OOP gelangt: Abstraktion. Das Wort "abstraktion" klingt ziemlich abstrakt, und kurz gesagt, besagt dieses Prinzip, dass wir von Abstraktion abhängig sein sollten, anstatt von einer spezifischen Implementierung. Das mag jetzt komplex klingen. Fangen wir an, indem wir uns die Definition anschauen:

Zum Beispiel gibt es eine Klasse namens Person, von der viele verschiedene Klassen abgeleitet sind. Person besitzt verschiedene Felder und Methoden, die allen Klassen gemeinsam sind. Wenn wir jedoch eine Klasse namens BasketballPlayer, haben, wird das Attribut height entscheidend, während bei einer Klasse wie Driver height unwichtig und nicht relevant ist. Genau hier kommt die Abstraktion ins Spiel. Durch die Vererbung von einer Abstraktion können wir den Parameter height optional machen, sodass er nicht dort verwendet werden muss, wo er nicht notwendig ist.

Es mag komplex klingen, also kommen wir zu einem Beispiel:

java

Car

copy
123456789
public abstract class Car { String model; int year; int maxSpeed; String color; public abstract void move(); public abstract void stop(); }

Die Car-Klasse repräsentiert nichts Konkretes. Es gibt nicht einfach ein Car; es gibt Limousinen, Lastwagen, Traktoren. Daher verlassen wir uns auf die Abstraktion namens Car. Um es weiter zu vereinfachen: Car ist eine Vorlage, anhand derer wir spezifische Autoklassen erstellen.

Achten Sie auf die Syntax:

Dies ist die Syntax zur Deklaration einer abstrakten Klasse. Beachten Sie auch die Syntax zur Deklaration einer abstrakten Methode:

Eine abstrakte Methode hat keinen Körper; das ist ihr Hauptmerkmal. Unterklassen einer abstrakten Klasse werden diese abstrakte Methode überschreiben, um ihre eigene Implementierung unter Verwendung von Polymorphismus zu definieren.

Werfen wir einen genaueren Blick darauf, was eine abstrakte Klasse ist:

Beachten Sie, dass wir kein Objekt einer abstrakten Klasse erstellen können; dies führt zu einem Fehler:

Abstrakte Klassen befreien uns davon, uns ausschließlich mit "objects" zu beschäftigen; sie bieten uns einen grundlegenden Zustand und Verhalten. Nehmen wir das Beispiel von Autos, sollte jedes Auto ein Modell, Produktionsjahr, Höchstgeschwindigkeit und Farbe besitzen. Außerdem sollten sie in der Lage sein, sich zu bewegen und anzuhalten. Das ist alles; darauf basierend entwerfen Sie Ihre spezifischen Klassen unter Zuhilfenahme dieses abstrakten Bauplans.

Regeln zur Erstellung einer abstrakten Klasse

  1. Eine abstrakte Klasse ist eine Klasse, die mindestens eine abstrakte Methode enthält. Sie können eine abstrakte Klasse ohne abstrakte Methoden erstellen, aber dann würde sie keinen Zweck erfüllen. Sie können keine Objekte einer abstrakten Klasse instanziieren;
  2. Abstrakte Methoden können nur innerhalb einer abstrakten Klasse existieren; Sie können keine abstrakten Methoden außerhalb einer abstrakten Klasse erstellen;
  3. Methoden innerhalb einer abstrakten Klasse können entweder abstrakte Methoden oder Methoden mit Implementierungen sein;
  4. Eine Klasse, die von einer abstrakten Klasse erbt, muss alle abstrakten Methoden überschreiben;
  5. Sie können von maximal einer Klasse erben (egal ob abstrakt oder nicht abstrakt);
  6. Eine abstrakte Klasse sollte die gemeinsamen Eigenschaften und Verhaltensweisen der erbenden Klassen repräsentieren. Dies werden wir detaillierter besprechen, wenn wir die SOLID-Prinzipien studieren.

Betrachten wir ein Beispiel, um zu verstehen, wie Unterklassen abstrakte Methoden durch die Vererbung einer abstrakten Klasse überschreiben sollten, und zwar am Beispiel der Kindklasse Truck:

Schauen wir uns im Detail genauer an, was oben geschrieben wurde:

  • Erste Folie: Wir erstellen eine Unterklasse Truck, die von der abstrakten Klasse Car erbt. Wir können sehen, dass die IDE uns auffordert, die erforderlichen Methoden zu implementieren;

  • Zweite Folie: Wir überschreiben die notwendigen Methoden. Zum Beispiel werden wir schreiben, dass der Truck begonnen hat, sich zu bewegen und dann gestoppt hat;

  • Dritte Folie: Wir erstellen ein Objekt in der main-Methode. Achte auf die verwendete Syntax: Car name = new Truck();. Wir beginnen mit der Erstellung des Objekts durch Abstraktion und enden mit einer spezifischen Implementierung. Dies nennt man Komposition. Dann weisen wir den Feldern nach Bedarf Werte zu und rufen die überschriebenen Methoden auf.

Voilà! Wenn du alles verstanden hast, hast du gelernt, wie man eine abstrakte Klasse verwendet!

Zusammenfassung

Abstraktion ist wahrscheinlich das herausforderndste Prinzip der OOP, das es zu verstehen gilt, und es ist sehr wahrscheinlich, dass du im Moment noch nicht alles erfasst hast. Aber denk nicht, dass du allein damit bist. Abstraktion ist ein Konzept, das zunächst den meisten Entwicklern schwer fällt, vollständig zu begreifen. Mit der Zeit wirst du besser verstehen, wie man effektiv mit Abstraktion und abstrakten Klassen arbeitet. Abstraktion ist ein entscheidendes Prinzip, weil es uns ermöglicht, unsere Programme erweiterbar und hoch flexibel zu gestalten.

1. Was ist Abstraktion in der objektorientierten Programmierung?

2. Welche der folgenden Aussagen über Abstraktion sind korrekt?

3. Was ist der Zweck einer abstrakten Klasse in Java?

4. Wie trägt Abstraktion zur Wartbarkeit des Codes bei?

Was ist Abstraktion in der objektorientierten Programmierung?

Was ist Abstraktion in der objektorientierten Programmierung?

Wählen Sie die richtige Antwort aus

Welche der folgenden Aussagen über Abstraktion sind korrekt?

Welche der folgenden Aussagen über Abstraktion sind korrekt?

Wählen Sie einige richtige Antworten aus

Was ist der Zweck einer abstrakten Klasse in Java?

Was ist der Zweck einer abstrakten Klasse in Java?

Wählen Sie die richtige Antwort aus

Wie trägt Abstraktion zur Wartbarkeit des Codes bei?

Wie trägt Abstraktion zur Wartbarkeit des Codes bei?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 7
We're sorry to hear that something went wrong. What happened?
some-alt