- A probléma megértése módszer felülbírálása nélkül
- Felülírhatjuk-e a statikus módszert
- Metódus túlterhelés vs. módszer felülbírálása
Ha az alosztálynak (gyermekosztálynak) ugyanaz a metódusa van, mint a szülőosztályban deklarált, akkor az úgynevezett metódus felülbírálása Java-ban .
Más szóval, ha egy alosztály biztosítja az egyik szülőosztálya által deklarált metódus konkrét megvalósítását, akkor azt metódus felülbírálásnak nevezik.
8-1 multiplexer
Java Method Overriding használata
- A metódus felülbírálása egy olyan metódus specifikus megvalósítását szolgálja, amelyet a szuperosztálya már biztosít.
- A módszer felülbírálása futásidejű polimorfizmus esetén használatos
A Java módszer felülbírálásának szabályai
- A metódusnak meg kell egyeznie a szülő osztály nevével
- A metódusnak ugyanazzal a paraméterrel kell rendelkeznie, mint a szülő osztályban.
- IS-A kapcsolatnak kell lennie (öröklődés).
A probléma megértése módszer felülbírálása nélkül
Értsük meg azt a problémát, amellyel a programban szembesülhetünk, ha nem használjuk a metódus felülbírálását.
//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(); } }Tesztelje most
Kimenet:
Vehicle is running
A probléma az, hogy a run() metódus egy speciális megvalósítását kell biztosítanom az alosztályban, ezért használjuk a metódus felülbírálását.
palindrom java-ban
Példa a módszer felülbírálására
Ebben a példában definiáltuk a futtatási metódust az alosztályban, ahogyan a szülőosztályban definiáltuk, de van bizonyos megvalósítása. A metódus neve és paramétere megegyezik, az osztályok között IS-A kapcsolat van, tehát van metódus felülbírálása.
//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 } }Tesztelje most
Kimenet:
Bike is running safely
A Java Method Overriding igazi példája
Tekintsünk egy olyan forgatókönyvet, ahol a Bank egy olyan osztály, amely a kamatláb megszerzéséhez funkcionalitást biztosít. A kamat mértéke azonban bankonként változik. Például az SBI, ICICI és AXIS bankok 8%, 7% és 9% kamatlábat biztosíthatnak.
A Java metódusok felülbírálását leginkább a Runtime Polymorphism-ban használják, amelyet a következő oldalakon fogunk megtudni.
//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()); } }Tesztelje most
Output: SBI Rate of Interest: 8 ICICI Rate of Interest: 7 AXIS Rate of Interest: 9
Felülírhatjuk a statikus módszert?
Nem, egy statikus metódust nem lehet felülírni. Futásidejű polimorfizmussal bizonyítható, így később megtanuljuk.
Miért nem írhatjuk felül a statikus módszert?
Ez azért van, mert a statikus metódus osztályhoz, míg a példánymetódus objektumhoz van kötve. A statikus az osztályterülethez, egy példány pedig a kupacterülethez tartozik.
Felülírhatjuk a java fő metódust?
Nem, mert a fő egy statikus módszer.
Különbség a módszer túlterhelése és a módszer felülbírálása között java-ban
Kattintson rám a módszer túlterhelése és felülbírálása közötti különbségért
betűtípusok listája a gimpben
További témák a módszer felülbírálásáról (nem kezdőknek)
Módszer felülbírálása hozzáférés-módosítóvalLássuk a metódus felülbírálását hozzáférés módosítóval.
Kivételkezelés a módszer felülbírálásávalLássuk a kivételkezeléssel felülbíráló módszer fogalmát.