Statische Methoden in Java überschreiben und überladen

Muhammad Zeeshan 12 Oktober 2023
  1. Methodenüberladung
  2. Methodenüberschreibung
  3. Überladen Sie eine statische Methode in Java
  4. Überschreiben Sie eine statische Methode in Java
Statische Methoden in Java überschreiben und überladen

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:

  1. Im folgenden Beispiel haben wir zwei statische Methoden mit dem Namen erstellt:

    public static void A() {}
    public static void Z(int b) {}
    
  2. 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. ");
    }
    
  1. 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:

  1. Die Klassen Tree und Root unten haben beide dieselbe Methodensignatur, eine statische Methode namens Show(). Die versteckte Methode von Root deckt die ursprüngliche Funktion der Basisklasse ab.
  2. Der Aufruf einer statischen Methode für ein Objekt einer Root-Klasse ruft die statische Methode der Root-Klasse auf.
  3. Wenn wir in der main()-Methode eine statische Methode aufrufen, indem wir ein Objekt der Tree-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
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

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

Verwandter Artikel - Java Method