Statische Methoden in Java überschreiben und überladen
- Methodenüberladung
- Methodenüberschreibung
- Überladen Sie eine statische Methode in Java
- Überschreiben Sie eine statische Methode in Java
In diesem Artikel werden wir diskutieren, ob es möglich ist, statische Methoden in Java zu überschreiben und zu überladen. Aber bevor wir weitermachen, wollen wir sicherstellen, dass wir uns über einige wichtige Punkte im Klaren sind:
Die objektorientierte Natur von Java macht das Überschreiben und Überladen zu entscheidenden Funktionen. Wenn ein Programmierer Vielseitigkeit benötigt, kann er diese Funktionalität nutzen.
Methodenüberladung
Der Polymorphismus zur Kompilierzeit, auch als statischer Polymorphismus bekannt, ist eng mit dem Überladen verbunden, einem weiteren Merkmal objektorientierter Programmiersprachen wie Java. Diese Funktion ermöglicht es, dass viele Methoden den gleichen Namen haben, aber unterschiedliche Signaturen haben.
Diese Signaturen können auf verschiedene Weise variieren, einschließlich der Anzahl der Eingabeargumente und der Art der Eingabeparameter.
Statische Methode
Eine statische Methode ist eine Methode, die mit dem Schlüsselwort static
beginnt. Methoden auf Klassenebene sind ein anderer Name für dieses Konzept.
Die Funktion statisch
steht allen Klasseninstanzen über eine Standardimplementierung zur Verfügung.
Methodenüberschreibung
Das Überschreiben ist eine Funktion objektorientierter Programmiersprachen wie Java, die Polymorphismus zur Laufzeit erleichtert. Eine in einer Oberklasse definierte Methode wird häufig in einer Unterklasse oder abgeleiteten Klasse implementiert.
Das aufrufende Objekt bestimmt, welche Implementierung zur Laufzeit durchgeführt wird. Beachten Sie, dass die Signaturen beider Methoden identisch sein müssen.
Nach einer Erläuterung des Überladens und Überschreibens von Methoden sprechen wir darüber, ob es möglich ist, eine statische Methode in Java zu überschreiben oder zu überschreiben.
Überladen Sie eine statische Methode in Java
Ja, wir können statische Methoden überladen. Es ist jedoch wichtig, daran zu denken, dass die Methodensignatur eindeutig sein muss, oder wir zwei oder mehr statische Methoden mit demselben Namen, aber unterschiedlichen Eingabeparametern haben können.
Betrachten Sie das folgende Beispiel, um dieses Konzept besser zu verstehen:
-
Im folgenden Beispiel haben wir zwei statische Methoden mit dem Namen erstellt:
public static void A() {} public static void Z(int b) {}
-
Danach haben wir diese Methoden einfach mit einigen Daten gefüllt, die beim Aufruf angezeigt werden sollen, wie z. B. die folgenden:
public static void A() { System.out.println(" A() method is called: Hi, Muhammad Zeeshan here. "); }
-
Zuletzt rufen Sie beide Methoden in der Methode
main()
auf, um sie zu überladen:public static void main(String args[]) { Shani.A(); Shani.Z(2); }
Vollständiger Code:
public class Shani {
public static void A() {
System.out.println(" A() method is called: Hi, Muhammad Zeeshan here. ");
}
public static void Z(int b) {
System.out.println(" Z(int b) method is called: Hello, Programmers. ");
}
public static void main(String args[]) {
Shani.A();
Shani.Z(2);
}
}
Wenn wir Methoden überladen, indem wir die Methode main()
aufrufen, erhalten wir die folgende Ausgabe:
A() method is called: Hi, Muhammad Zeeshan here.
Z(int b) method is called: Hello, Programmers.
Überschreiben Sie eine statische Methode in Java
Statische Methoden werden zur Kompilierzeit mithilfe der statischen Bindung gebunden. Aus diesem Grund können wir sie nicht überschreiben, da das Überschreiben von Methoden auf dynamischer Bindung zur Laufzeit basiert und die statischen Methoden bereits mit dynamischer Bindung zur Laufzeit gebunden sind.
Daher können wir statische Methoden nicht überschreiben.
Schauen wir uns zum besseren Verständnis das folgende Beispiel an:
- Die Klassen
Tree
undRoot
unten haben beide dieselbe Methodensignatur, eine statische Methode namensShow()
. Die versteckte Methode vonRoot
deckt die ursprüngliche Funktion der Basisklasse ab. - Der Aufruf einer statischen Methode für ein Objekt einer
Root
-Klasse ruft die statische Methode derRoot
-Klasse auf. - Wenn wir in der
main()
-Methode eine statische Methode aufrufen, indem wir ein Objekt derTree
-Klasse übergeben, wird die ursprüngliche statische Methode aufgerufen, wie wir im folgenden Beispiel sehen können:
public class Shani {
public static void main(String args[]) {
Tree t = new Root();
t.Show();
}
}
Vollständiger Code:
public class Shani {
public static void main(String args[]) {
Tree t = new Root();
t.Show();
}
}
class Tree {
public static void Show() {
System.out.println(" Show() method of the *Tree* class ");
}
}
class Root extends Tree {
public static void Show() {
System.out.println(" Overridden static method in *Root* class in Java ");
}
}
Ausgang:
Show() method of the *Tree* class
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn