- Das Problem verstehen, ohne Methoden zu überschreiben
- Können wir die statische Methode überschreiben?
- Methodenüberladung vs. Methodenüberschreibung
Wenn die Unterklasse (untergeordnete Klasse) dieselbe Methode hat, die in der übergeordneten Klasse deklariert ist, wird sie als bezeichnet Methodenüberschreibung in Java .
in die Tastatur einsetzen
Mit anderen Worten: Wenn eine Unterklasse die spezifische Implementierung der Methode bereitstellt, die von einer ihrer übergeordneten Klassen deklariert wurde, spricht man von einer Methodenüberschreibung.
Verwendung des Überschreibens von Java-Methoden
- Das Überschreiben von Methoden wird verwendet, um die spezifische Implementierung einer Methode bereitzustellen, die bereits von ihrer Oberklasse bereitgestellt wird.
- Das Überschreiben von Methoden wird für Laufzeitpolymorphismus verwendet
Regeln für das Überschreiben von Java-Methoden
- Die Methode muss denselben Namen wie in der übergeordneten Klasse haben
- Die Methode muss denselben Parameter wie in der übergeordneten Klasse haben.
- Es muss eine IS-A-Beziehung (Vererbung) bestehen.
Das Problem verstehen, ohne Methoden zu überschreiben
Lassen Sie uns das Problem verstehen, das im Programm auftreten kann, wenn wir das Überschreiben von Methoden nicht verwenden.
//Java Program to demonstrate why we need method overriding //Here, we are calling the method of parent class with child //class object. //Creating a parent class class Vehicle{ void run(){System.out.println('Vehicle is running');} } //Creating a child class class Bike extends Vehicle{ public static void main(String args[]){ //creating an instance of child class Bike obj = new Bike(); //calling the method with child class instance obj.run(); } }Testen Sie es jetzt
Ausgabe:
Vehicle is running
Das Problem ist, dass ich eine spezifische Implementierung der run()-Methode in der Unterklasse bereitstellen muss, weshalb wir das Überschreiben von Methoden verwenden.
Beispiel für das Überschreiben einer Methode
In diesem Beispiel haben wir die Ausführungsmethode in der Unterklasse so definiert, wie sie in der übergeordneten Klasse definiert ist, sie verfügt jedoch über eine bestimmte Implementierung. Der Name und der Parameter der Methode sind gleich, und zwischen den Klassen besteht eine IS-A-Beziehung, sodass eine Methodenüberschreibung erfolgt.
//Java Program to illustrate the use of Java Method Overriding //Creating a parent class. class Vehicle{ //defining a method void run(){System.out.println('Vehicle is running');} } //Creating a child class class Bike2 extends Vehicle{ //defining the same method as in the parent class void run(){System.out.println('Bike is running safely');} public static void main(String args[]){ Bike2 obj = new Bike2();//creating object obj.run();//calling method } }Testen Sie es jetzt
Ausgabe:
Bike is running safely
Ein echtes Beispiel für das Überschreiben von Java-Methoden
Stellen Sie sich ein Szenario vor, in dem Bank eine Klasse ist, die Funktionen zum Ermitteln des Zinssatzes bereitstellt. Allerdings variiert der Zinssatz je nach Bank. Beispielsweise könnten SBI-, ICICI- und AXIS-Banken einen Zinssatz von 8 %, 7 % und 9 % anbieten.
Zeichenfolge zum Char-Java
Das Überschreiben von Java-Methoden wird hauptsächlich im Laufzeitpolymorphismus verwendet, den wir auf den nächsten Seiten kennenlernen werden.
//Java Program to demonstrate the real scenario of Java Method Overriding //where three classes are overriding the method of a parent class. //Creating a parent class. class Bank{ int getRateOfInterest(){return 0;} } //Creating child classes. class SBI extends Bank{ int getRateOfInterest(){return 8;} } class ICICI extends Bank{ int getRateOfInterest(){return 7;} } class AXIS extends Bank{ int getRateOfInterest(){return 9;} } //Test class to create objects and call the methods class Test2{ public static void main(String args[]){ SBI s=new SBI(); ICICI i=new ICICI(); AXIS a=new AXIS(); System.out.println('SBI Rate of Interest: '+s.getRateOfInterest()); System.out.println('ICICI Rate of Interest: '+i.getRateOfInterest()); System.out.println('AXIS Rate of Interest: '+a.getRateOfInterest()); } }Testen Sie es jetzt
Output: SBI Rate of Interest: 8 ICICI Rate of Interest: 7 AXIS Rate of Interest: 9
Können wir die statische Methode überschreiben?
Nein, eine statische Methode kann nicht überschrieben werden. Es kann durch Laufzeitpolymorphismus bewiesen werden, daher werden wir es später lernen.
Warum können wir die statische Methode nicht überschreiben?
Dies liegt daran, dass die statische Methode an eine Klasse gebunden ist, während die Instanzmethode an ein Objekt gebunden ist. Statisch gehört zum Klassenbereich und eine Instanz gehört zum Heap-Bereich.
Können wir die Java-Hauptmethode überschreiben?
Nein, da main eine statische Methode ist.
r in C-Sprache
Unterschied zwischen Methodenüberladung und Methodenüberschreibung in Java
Klicken Sie auf mich, um den Unterschied zwischen Methodenüberladung und -überschreibung zu erfahren
Weitere Themen zum Überschreiben von Methoden (nicht für Anfänger)
Methodenüberschreibung mit ZugriffsmodifikatorSehen wir uns das Konzept des Methodenüberschreibens mit Zugriffsmodifikator an.
Ausnahmebehandlung mit MethodenüberschreibungSehen wir uns das Konzept des Methodenüberschreibens mit Ausnahmebehandlung an.