Java super: Alles über das Java super-Attribut!

    Avatarbild von Patrick
    Patrick

    veröffentlicht am: 21.06.2022
    zuletzt aktualisiert am: 19.04.2023

    Java super: Alles über das super Keyword in Java!

    Das „Java super„-Keyword spielt bei der Vererbung in Java eine wichtige Rolle. Das Schlüsselwort „super“ kann auf öffentliche und geschützte Methoden angewendet werden, während es auf statische oder private Methoden nicht angewendet werden kann.

    Die Anwendbarkeit des Schlüsselworts super ist auf die unmittelbare Oberklasse beschränkt. Der „Enkel“ kann die Eigenschaften des großen „Supers“ erben, indem er seine Superklasse durchläuft. Das Schlüsselwort super kann jedoch nicht in den Enkelklassen für die Großelternklassen verwendet werden.

    Dieser Beitrag behandelt das Schlüsselwort super mit den folgenden Lerninhalten:

    • Wie greift man mit dem Schlüsselwort super auf die Attribute der Superklasse zu?
    • Wie greift man mit dem Schlüsselwort super auf die Methode der Superklasse zu?
    • Wie greift man auf den Konstruktor einer Superklasse mit dem Schlüsselwort super zu?

    Wie verwendet man Java super?

    Das super-Schlüsselwort kann nur verwendet werden, um auf „Referenzvariablen„, „Methoden“ oder „Konstruktoren“ der unmittelbaren Superklasse zuzugreifen.  Hier erfahren wir, wie sich das super-Schlüsselwort für die oben genannten Felder einer Superklasse verhält.

    Auf die Attribute einer Oberklasse / Superklasse zugreifen

    Die Syntax für den Zugriff auf das Attribut einer Superklasse mit dem Schlüsselwort super ist unten angegeben.

    Syntax

    super.attribut;

    Der Punkt (.) Operator wird verwendet, um das Schlüsselwort Java super mit dem Namen des Attributs zu verbinden.

    Lass uns die Anwendung mit Hilfe des folgenden Codes demonstrieren:

    class Autos {
        String erstesAuto = "LAND-CRUISER-ZX";
        String zweitesAuto = "TOYOTA-CAMRY";
        String drittesAuto = "FJ-CRUISER";
    }
    class Toyota extends Autos {
        public void show() {
            System.out.println("Die verfügbaren Fahrzeuge sind:\n" + super.erstesAuto + "\n" + super.zweitesAuto + "\n" + super.drittesAuto);
        }
    }
    public class Main {
        public static void main(String[] args) {
            Toyota t = new Toyota();
            t.show();
        }
    }

    Im obigen Code,

    • werden drei String-Variablen erstesAuto, zweitesAuto und drittesAuto in der Klasse „Autos“ deklariert
    • die Klasse „Toyota“ erweitert die Klasse „Autos
    • in der Unterklasse (Toyota) wird eine Methode angegeben, die auf die Variablen der Oberklasse zugreifen soll
    • das Schlüsselwort „super“ wird für jede Variable (erstesAuto, zweitesAuto und drittesAuto) verwendet 
    • zuletzt wird das Objekt der Unterklasse in der Hauptklasse erstellt, und dieses Objekt wird für den Zugriff auf die Methode der Unterklasse verwendet

    Ausgabe:

    Dieses Prinzip der Programmierung ist in Java etwas sehr wichtiges!

    Die Ausgabe zeigt, dass der Zugriff auf die Attribute der Oberklasse in der Unterklasse mit Hilfe des Java super-Schlüsselworts erfolgt.

    Mit Java super auf den Konstruktor einer Oberklasse zugreifen

    In Java ist ein Konstruktor eine Methode, mit der Objekte erstellt werden sollen. Zum besseren Verständnis wird die folgende Syntax verwendet, um in einer Unterklasse auf den Java Konstruktor einer Oberklasse zuzugreifen.

    Syntax

    super();

    In Java ist ein Konstruktor eine Methode, mit der Objekte erstellt werden sollen. Zum besseren Verständnis wird die folgende Syntax verwendet, um in einer Unterklasse auf den Konstruktor einer Oberklasse zuzugreifen.

    class Autos {
        Autos() {
            int h = 10;
            int e = 15;
            System.out.println("Es befinden sich so viele Autos in unserem Autohaus: " + (h + e));
        }
    }
    class Toyota extends Autos {
        Toyota() {
            super();
            int t = 5;
            System.out.println("Davon Toyotas: " + t);
        }
    }
    public class Main {
        public static void main(String[] args) {
            Toyota c = new Toyota();
        }
    }

    Im obigen Code,

    • ist Autos die Oberklasse, die einen Konstruktor mit demselben Namen enthält
    • ist Toyota die Unterklasse, die ebenfalls den gleichnamigen Konstruktor enthält
    • wird der Konstruktor der Klasse Vehicles in der Unterklasse aufgerufen
    • wird schließlich das Objekt der Unterklasse in der Hauptklasse erstellt, die den Konstruktor der Unterklasse sofort aufruft

    Hinweis: Die @SuppressWarnings(„unused“) Annotation wird verwendet, um den Hinweis zu unterdrücken, dass das Objekt nicht verwendet wird.

    Ausgabe auf der Konsole:

    Wir können die this-Funktion verwenden, um auf das aktuelle Objekt zu referenzieren.

    Die Ausgabe zeigt, dass der Inhalt des Konstruktors der Hauptklasse so angezeigt wird, wie er im Konstruktor der Unterklasse aufgerufen wurde.

    Mit Java super auf die Methoden der Oberklasse / Superklasse zugreifen

    Die Oberklasse und die Unterklasse können Methoden mit demselben Namen haben. Mit dem Java super-Schlüsselwort können diese unterschieden werden.

    Syntax

    super.MethodName();

    Der Methodenname() bezieht sich auf den Namen der Methode, die innerhalb der Unterklasse aufgerufen werden soll. Zum besseren Verständnis werden die folgenden Codezeilen ausgeführt, um die Verwendung des Schlüsselworts super für den Aufruf einer Methode der Oberklasse in der Unterklasse zu demonstrieren.

    class Autos {
        public void meineNachricht() {
            System.out.println("Methode in der SuperClass");
        }
    }
    class Toyota extends Autos {
        public void meineNachricht() {
            System.out.println("Überschriebene Methode der SuperClass");
        }
        public void dieGrosseNachricht() {
            super.meineNachricht();
        }
    }
    public class Main {
        public static void main(String[] args) {
            Toyota t = new Toyota();
            t.dieGrosseNachricht();
        }
    }

    Im obigen Code,

    • enthält die übergeordnete Klasse „Autos“ eine Methode meineNachricht()
    • diese Methode wird in der Unterklasse „Toyota“ außer Kraft gesetzt
    • die Unterklasse enthält eine weitere Methode (dieGrosseNachricht), die die Methode meineNachricht() aufruft
    • das Schlüsselwort super ist mit der Methode meineNachricht() verbunden
    • das Objekt (t) der Klasse Toyota wird in der Main-Klasse erstellt
    • dieses Objekt wird zum Aufruf der Methode dieGrosseNachricht() verwendet

    Ausgabe

    Java super: Der String-Name zeigt uns die einzelnen Willkommensnachrichten!

    Die Methode meineNachricht() gehört ebenfalls zur Unterklasse. Da jedoch das Java super Keyword verwendet wird, wird die Methode meineNachricht() der Oberklasse ausgeführt.

    Zusammenfassung: Objektorientierung – Java super

    In Java wird das super-Schlüsselwort verwendet, um die Methode/Konstruktor/Variable der Ober-/Elternklasse in der Unter-/Kinderklasse zu erreichen. Das super-Schlüsselwort ist sehr hilfreich, wenn die Methoden den gleichen Namen haben oder die Variablen den gleichen Namen haben könnten. In diesem Beitrag wurde die Bedeutung des super-Schlüsselworts erläutert und seine Verwendung anhand von Beispielen demonstriert. Ein Punkt-Operator (mehr über die Java Operatoren erfahren) wird verwendet, um das super-Schlüsselwort mit den Variablen/Methoden zu verbinden, um sie von den Unterklassen aus aufzurufen.

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Java und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig