logo

Methode overschrijven in Java

  1. Het probleem begrijpen zonder de methode te overschrijven
  2. Kunnen we de statische methode negeren?
  3. Methode-overbelasting versus methode-overschrijving

Als de subklasse (kindklasse) dezelfde methode heeft als gedeclareerd in de bovenliggende klasse, staat deze bekend als methode overschrijven in Java .

Met andere woorden: als een subklasse de specifieke implementatie biedt van de methode die is gedeclareerd door een van de bovenliggende klassen, staat dit bekend als het overschrijven van de methode.

Gebruik van Java-methode overschrijven

  • Methode-overschrijving wordt gebruikt om de specifieke implementatie te bieden van een methode die al door zijn superklasse wordt geleverd.
  • Methode-overschrijving wordt gebruikt voor runtime-polymorfisme

Regels voor het overschrijven van Java-methoden

  1. De methode moet dezelfde naam hebben als in de bovenliggende klasse
  2. De methode moet dezelfde parameter hebben als in de bovenliggende klasse.
  3. Er moet sprake zijn van een IS-A relatie (erfenis).
Java-regels voor het overschrijven van methoden

Het probleem begrijpen zonder de methode te overschrijven

Laten we het probleem begrijpen waarmee we in het programma te maken kunnen krijgen als we geen methodeoverschrijving gebruiken.

 //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(); } } 
Test het nu

Uitgang:

 Vehicle is running 

Het probleem is dat ik een specifieke implementatie van de run()-methode in de subklasse moet bieden. Daarom gebruiken we methode-overschrijving.


Voorbeeld van het overschrijven van een methode

In dit voorbeeld hebben we de run-methode in de subklasse gedefinieerd zoals gedefinieerd in de bovenliggende klasse, maar deze heeft een specifieke implementatie. De naam en parameter van de methode zijn hetzelfde, en er is een IS-A-relatie tussen de klassen, dus er is sprake van overschrijving van de methode.

 //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 } } 
Test het nu

Uitgang:

 Bike is running safely 

Een echt voorbeeld van Java Method Overriding

Beschouw een scenario waarin Bank een klasse is die functionaliteit biedt om de rentevoet te verkrijgen. De rente varieert echter per bank. SBI-, ICICI- en AXIS-banken zouden bijvoorbeeld een rente van 8%, 7% en 9% kunnen bieden.

Java-methode die voorbeeld van bank overschrijft

Het overschrijven van Java-methoden wordt meestal gebruikt in Runtime Polymorphism, wat we op de volgende pagina's zullen leren.

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

Kunnen we de statische methode negeren?

Nee, een statische methode kan niet worden overschreven. Het kan worden bewezen door runtime-polymorfisme, dus we zullen het later leren.


Waarom kunnen we de statische methode niet terzijde schuiven?

Het komt omdat de statische methode gebonden is aan klasse, terwijl de instantiemethode gebonden is aan een object. Statisch behoort tot het klassengebied en een instantie behoort tot het heapgebied.


Kunnen we de Java-hoofdmethode overschrijven?

Nee, omdat de hoofdmethode een statische methode is.


Verschil tussen methode-overbelasting en methode-overschrijving in Java

Klik op mij voor het verschil tussen overbelasting en overschrijving van methoden


Meer onderwerpen over het overschrijven van methoden (niet voor beginners)

Methode overschrijven met Access Modifier

Laten we eens kijken naar het concept van methode-overschrijving met toegangsmodifier.

Afhandeling van uitzonderingen waarbij de methode wordt overschreven

Laten we eens kijken naar het concept van het overschrijven van methoden met uitzonderingsafhandeling.