logo

Módszer felülbírálása Java-ban

  1. A probléma megértése módszer felülbírálása nélkül
  2. Felülírhatjuk-e a statikus módszert
  3. 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

  1. A metódusnak meg kell egyeznie a szülő osztály nevével
  2. A metódusnak ugyanazzal a paraméterrel kell rendelkeznie, mint a szülő osztályban.
  3. IS-A kapcsolatnak kell lennie (öröklődés).
Java szabályok a módszer felülbírálásához

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.

Java-módszert felülíró példa bankra

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óval

Lá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ával

Lássuk a kivételkezeléssel felülbíráló módszer fogalmát.