Heim >Java >javaLernprogramm >Super-Schlüsselwort in Java
Super ist ein Schlüsselwort, das zum Aufrufen einer Funktion oder Methode in der Superklasse verwendet wird. Dies wird innerhalb der Unterklasse definiert. Mit diesem Schlüsselwort können nur öffentliche und geschützte Methoden aufgerufen werden. Mit anderen Worten: Private Methoden und statische Methoden können damit nicht aufgerufen werden. Das Super-Schlüsselwort in Java kann auch verwendet werden, um die Konstruktoren der übergeordneten Klasse aufzurufen. Syntax, Beispiele und weitere Details zum Super-Schlüsselwort werden in den folgenden Abschnitten besprochen.
Syntax
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
super.<<method-name>> or super([0 or more arguments]);
Wie bereits erwähnt, kann super mehrfach verwendet werden.
Wenn die übergeordnete und untergeordnete Klasse dieselben Datenelemente haben, kann das Schlüsselwort Super verwendet werden, um auf das Feld oder Datenelement der übergeordneten Klasse zuzugreifen. In diesem Fall kann es zu Mehrdeutigkeiten bezüglich der Java Virtual Machine kommen.
Beispiel:
Code:
class A { protected String name="ann"; } class B extends A { public String name="Anna"; public void hello() { System.out.println("I am " + name); System.out.println("I am " + super.name); } }
Hier haben zwei Klassen A und B einen gemeinsamen Feldnamen. Eine Funktion printType() innerhalb der untergeordneten Klasse verwendet das Schlüsselwort super, um auf das Feld in einer übergeordneten Klasse zu verweisen.
Methodenüberschreibung ist ein Prozess, bei dem eine untergeordnete Klasse dieselbe Funktion oder Methode deklariert, die bereits in der übergeordneten Klasse verfügbar ist. Angenommen, wenn ein Aufruf der Methode vom Objekt der untergeordneten Klasse erfolgt, wird nur die Methode in der untergeordneten Klasse aufgerufen. Um auf die übergeordnete Methode zuzugreifen, kann ein Super-Schlüsselwort verwendet werden.
Beispiel:
Code:
class A { protected String name="ann"; public void hello() { System.out.println("I am " + name); } } class B extends A { public String name="Anna”; public void hello() { System.out.println("I am " + name); } public void test() { hello(); super.hello(); } }
Hier haben zwei Klassen, A und B, dieselbe Methode hello(). Mit Hilfe eines Super-Schlüsselworts in der test()-Funktion ist es möglich, auf die hello()-Methode einer übergeordneten Klasse zuzugreifen.
Es ist bereits bekannt, dass ein Konstruktor (Standard) automatisch aufgerufen wird, wenn das Objekt einer Klasse erstellt wird. Mit dem Schlüsselwort super kann der Konstruktor der Oberklasse explizit vom Konstruktor der Unterklasse aufgerufen werden. Stellen Sie sicher, dass super nur innerhalb des Konstruktors der Unterklasse verwendet wird und es die erste Anweisung darin ist.
Beispiel:
Code:
class A { //constructor of parent class A() { System.out.println("I am Kavya Madhavan"); } } //child class class B extends A { //constructor of child class B() { super(); System.out.println("I am Dileep Menon"); } }
Im Folgenden sind die verschiedenen Beispiele aufgeführt:
Im folgenden Programm ist ein gemeinsamer Variablenname vorhanden und super wird verwendet, um die Variable in einer übergeordneten Klasse aufzurufen.
Code:
//Java program to illustrate Super keyword to refer instance variable //parent class class A { protected String name="ann"; } //child classs class B extends A { public String name="Anna";//variable which is same in parent class //sample method public void hello() { System.out.println("I am " + name); System.out.println("I am " + super.name); } } //main class public class SuperExample { public static void main(String[] args) { B objb=new B();//object of child class objb.hello();//call the method in child class } }
Ausgabe:
Dieses Programm hilft bei der Demonstration des Super-Schlüsselworts und verweist gleichzeitig auf dieselbe Methode in einer übergeordneten Klasse. Hier ist hello() eine Methode, die in beiden Klassen verfügbar ist.
Code:
//Java program to illustrate Super keyword to refer same method in parent class //parent class class A { protected String name="ann"; public void hello() { System.out.println("I am " + name); } } //child classs class B extends A { public String name="Anna";//variable which is same in parent class //sample method which is same in parent class public void hello() { System.out.println("I am " + name); } //method to call the hello() method in parent and child class public void test() { hello(); super.hello(); } } //main class public class SuperExample { public static void main(String[] args) { B objb=new B();//object of child class objb.test();//call the method in child class } }
Ausgabe:
Dieses Programm ruft den Konstruktor der übergeordneten Klasse mit dem Schlüsselwort super auf.
Code:
//Java program to illustrate Super keyword to refer constructor in parent class //parent class class A { //constructor of parent class A() { System.out.println("I am Kavya Madhavan"); } } //child class class B extends A { //constructor of child class B() { super(); System.out.println("I am Dileep Menon"); } } //main class public class SuperExample { public static void main(String[] args) { B objb=new B();//object of child class } }
Ausgabe:
Dieses Programm demonstriert die Verwendung eines Super-Schlüsselworts, um auf den parametrisierten Konstruktor einer übergeordneten Klasse zu verweisen.
Code:
//Java program to illustrate Super keyword to refer parameterised constructor in parent class //parent class class A { //constructor of parent class A() { System.out.println("I am Kavya Madhavan"); } //parameterised constructor A(String name) { System.out.println("I am " + name); } } //child class class B extends A { //constructor of child class B() { super("Renuka"); System.out.println("I am Dileep Menon"); } } //main class public class SuperExample { public static void main(String[] args) { B objb=new B();//object of child class } }
Ausgabe:
Super ist ein Schlüsselwort in Java, das verwendet wird, um auf Methoden oder Funktionen, Instanzvariablen oder Attribute und Konstruktoren in der übergeordneten Klasse zu verweisen. Wenn kein Konstruktor deklariert ist, erstellt der Compiler automatisch einen Standardkonstruktor. Ebenso ruft der Compiler super() automatisch auf, wenn es nicht deklariert ist. In diesem Dokument werden mehrere Aspekte des Super-Schlüsselworts ausführlich erläutert.
Das obige ist der detaillierte Inhalt vonSuper-Schlüsselwort in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!