- Razumevanje problema brez preglasitve metode
- Ali lahko preglasimo statično metodo
- Preobremenitev metode v primerjavi s preglasitvijo metode
Če ima podrazred (podrejeni razred) isto metodo, kot je deklarirana v nadrejenem razredu, je znan kot preglasitev metode v Javi .
Z drugimi besedami, če podrazred zagotavlja posebno izvedbo metode, ki jo je deklariral eden od njegovih nadrejenih razredov, je to znano kot preglasitev metode.
Uporaba preglasitve metode Java
- Preglasitev metode se uporablja za zagotavljanje posebne izvedbe metode, ki jo že zagotavlja njen nadrazred.
- Preglasitev metode se uporablja za polimorfizem med izvajanjem
Pravila za preglasitev metode Java
- Metoda mora imeti isto ime kot v nadrejenem razredu
- Metoda mora imeti enak parameter kot v nadrejenem razredu.
- Obstajati mora razmerje IS-A (dedovanje).
Razumevanje problema brez preglasitve metode
Razumejmo težavo, s katero se lahko soočimo v programu, če ne uporabimo preglasitve metode.
//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(); } }Preizkusite zdaj
Izhod:
Vehicle is running
Težava je v tem, da moram zagotoviti posebno izvedbo metode run() v podrazredu, zato uporabljamo preglasitev metode.
Primer preglasitve metode
V tem primeru smo definirali metodo zagona v podrazredu, kot je definirana v nadrejenem razredu, vendar ima določeno izvedbo. Ime in parameter metode sta enaka, med razredi pa obstaja razmerje IS-A, zato obstaja preglasitev metode.
//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 } }Preizkusite zdaj
Izhod:
Bike is running safely
Pravi primer preglasitve metode Java
Razmislite o scenariju, kjer je banka razred, ki zagotavlja funkcionalnost za pridobitev obrestne mere. Vendar se obrestna mera razlikuje glede na banko. Na primer, banke SBI, ICICI in AXIS lahko zagotovijo 8 %, 7 % in 9 % obrestno mero.
Preglasitev metode Java se večinoma uporablja v polimorfizmu izvajalnega okolja, ki ga bomo izvedeli na naslednjih straneh.
//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()); } }Preizkusite zdaj
Output: SBI Rate of Interest: 8 ICICI Rate of Interest: 7 AXIS Rate of Interest: 9
Ali lahko preglasimo statično metodo?
Ne, statične metode ni mogoče preglasiti. To je mogoče dokazati s polimorfizmom med izvajanjem, zato se bomo tega naučili kasneje.
Zakaj ne moremo preglasiti statične metode?
To je zato, ker je statična metoda vezana na razred, medtem ko je metoda primerka vezana na objekt. Statika pripada območju razreda, instanca pa območju kopice.
Ali lahko preglasimo glavno metodo java?
Ne, ker je glavna statična metoda.
Razlika med preobremenitvijo metode in preglasitvijo metode v Javi
Kliknite me za razliko med preobremenitvijo in preglasitvijo metode
Več tem o preglasitvi metode (ni za začetnike)
Preglasitev metode z modifikatorjem dostopaOglejmo si koncept preglasitve metode z modifikatorjem dostopa.
Obravnava izjem s preglasitvijo metodeOglejmo si koncept preglasitve metode z obravnavanjem izjem.