- Forstå problemet uden at tilsidesætte metoden
- Kan vi tilsidesætte den statiske metode
- Metodeoverbelastning vs. metodetilsidesættelse
Hvis underklassen (underklassen) har samme metode som erklæret i den overordnede klasse, er den kendt som metode tilsidesættelse i Java .
Med andre ord, hvis en underklasse leverer den specifikke implementering af metoden, der er blevet erklæret af en af dens overordnede klasse, er det kendt som metodetilsidesættelse.
Brug af Java-metodetilsidesættelse
- Metodetilsidesættelse bruges til at give den specifikke implementering af en metode, som allerede er leveret af dens superklasse.
- Metodetilsidesættelse bruges til runtime polymorfi
Regler for Java-metodetilsidesættelse
- Metoden skal have samme navn som i den overordnede klasse
- Metoden skal have samme parameter som i den overordnede klasse.
- Der skal være et IS-A forhold (arv).
Forstå problemet uden at tilsidesætte metoden
Lad os forstå det problem, vi kan stå over for i programmet, hvis vi ikke bruger metodetilsidesættelse.
//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 det nu
Produktion:
gimp gemmer som jpeg
Vehicle is running
Problemet er, at jeg skal levere en specifik implementering af run()-metoden i underklassen, det er derfor, vi bruger metodeoverstyring.
Eksempel på metodetilsidesættelse
I dette eksempel har vi defineret kørselsmetoden i underklassen som defineret i den overordnede klasse, men den har en vis specifik implementering. Metodens navn og parameter er det samme, og der er IS-A-forhold mellem klasserne, så der er metodeoverstyring.
//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 det nu
Produktion:
Bike is running safely
Et rigtigt eksempel på Java Method Overriding
Overvej et scenario, hvor Bank er en klasse, der giver funktionalitet til at få rentesatsen. Rentesatsen varierer dog afhængigt af bankerne. For eksempel kunne SBI-, ICICI- og AXIS-banker give 8%, 7% og 9% rente.
Java-metodetilsidesættelse bruges mest i Runtime Polymorphism, som vi vil lære på de næste sider.
//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 det nu
Output: SBI Rate of Interest: 8 ICICI Rate of Interest: 7 AXIS Rate of Interest: 9
Kan vi tilsidesætte den statiske metode?
Nej, en statisk metode kan ikke tilsidesættes. Det kan bevises ved runtime polymorfisme, så vi lærer det senere.
Hvorfor kan vi ikke tilsidesætte den statiske metode?
Det er fordi den statiske metode er bundet til klasse, mens instansmetoden er bundet til et objekt. Statisk hører til klasseområdet, og en instans hører til heapområdet.
Kan vi tilsidesætte java-hovedmetoden?
Nej, fordi den vigtigste er en statisk metode.
hvordan man kontrollerer skærmstørrelsen
Forskellen mellem metodeoverbelastning og metodetilsidesættelse i java
Klik på mig for at se forskellen mellem metodeoverbelastning og tilsidesættelse
Flere emner om metodetilsidesættelse (ikke for begyndere)
Metodetilsidesættelse med Access ModifierLad os se konceptet med metodetilsidesættelse med adgangsmodifikator.
Undtagelseshåndtering med metodetilsidesættelseLad os se konceptet med metodetilsidesættelse med undtagelseshåndtering.