logo

Metodo Overriding in Java

  1. Comprendere il problema senza sovrascrivere il metodo
  2. Possiamo sovrascrivere il metodo statico
  3. Overloading del metodo e override del metodo

Se la sottoclasse (classe figlia) ha lo stesso metodo dichiarato nella classe genitore, è nota come metodo che esegue l'override in Java .

In altre parole, se una sottoclasse fornisce l'implementazione specifica del metodo che è stato dichiarato da una delle sue classi genitori, si parla di overriding del metodo.

Utilizzo dell'overriding del metodo Java

  • L'override del metodo viene utilizzato per fornire l'implementazione specifica di un metodo già fornito dalla sua superclasse.
  • L'override del metodo viene utilizzato per il polimorfismo di runtime

Regole per la sostituzione del metodo Java

  1. Il metodo deve avere lo stesso nome della classe genitore
  2. Il metodo deve avere lo stesso parametro della classe genitore.
  3. Deve esserci una relazione IS-A (ereditarietà).
Regole Java per la sostituzione dei metodi

Comprendere il problema senza sovrascrivere il metodo

Comprendiamo il problema che potremmo incontrare nel programma se non utilizziamo l'override del metodo.

 //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(); } } 
Provalo adesso

Produzione:

 Vehicle is running 

Il problema è che devo fornire un'implementazione specifica del metodo run() nella sottoclasse, ecco perché utilizziamo l'override del metodo.

formica contro esperto

Esempio di override del metodo

In questo esempio, abbiamo definito il metodo run nella sottoclasse come definito nella classe genitore ma ha un'implementazione specifica. Il nome e il parametro del metodo sono gli stessi ed esiste una relazione IS-A tra le classi, quindi esiste l'override del metodo.

 //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 } } 
Provalo adesso

Produzione:

 Bike is running safely 

Un vero esempio di Java Method Overriding

Consideriamo uno scenario in cui Bank è una classe che fornisce funzionalità per ottenere il tasso di interesse. Tuttavia, il tasso di interesse varia a seconda delle banche. Ad esempio, le banche SBI, ICICI e AXIS potrebbero fornire tassi di interesse dell'8%, 7% e 9%.

Metodo Java che sovrascrive l'esempio di bank

L'override del metodo Java viene utilizzato principalmente nel polimorfismo di runtime che impareremo nelle pagine successive.

 //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()); } } 
Provalo adesso
 Output: SBI Rate of Interest: 8 ICICI Rate of Interest: 7 AXIS Rate of Interest: 9 

Possiamo sovrascrivere il metodo statico?

No, un metodo statico non può essere sovrascritto. Può essere dimostrato dal polimorfismo runtime, quindi lo impareremo più tardi.


Perché non possiamo sovrascrivere il metodo statico?

È perché il metodo statico è legato alla classe mentre il metodo di istanza è legato a un oggetto. Statico appartiene all'area della classe e un'istanza appartiene all'area dell'heap.


Possiamo sovrascrivere il metodo principale Java?

No, perché il main è un metodo statico.


Differenza tra sovraccarico del metodo e override del metodo in Java

Fare clic su di me per la differenza tra l'overloading e l'override del metodo

govinda

Altri argomenti sulla sostituzione del metodo (non per principianti)

Metodo Override con modificatore di accesso

Vediamo il concetto di override del metodo con modificatore di accesso.

Gestione delle eccezioni con overriding del metodo

Vediamo il concetto di override del metodo con la gestione delle eccezioni.