logo

Перевизначення методу в Java

  1. Розуміння проблеми без перевизначення методу
  2. Чи можемо ми перевизначити статичний метод
  3. Перевантаження методу проти перевизначення методу

Якщо підклас (дочірній клас) має той самий метод, що й оголошений у батьківському класі, він відомий як перевизначення методу в Java .

Іншими словами, якщо підклас забезпечує конкретну реалізацію методу, який був оголошений одним із його батьківських класів, це називається перевизначенням методу.

ім'я користувача

Використання перевизначення методу Java

  • Перевизначення методу використовується для забезпечення конкретної реалізації методу, яка вже надається його суперкласом.
  • Перевизначення методу використовується для поліморфізму часу виконання

Правила перевизначення методів Java

  1. Метод повинен мати таке ж ім'я, як у батьківського класу
  2. Метод повинен мати той самий параметр, що й у батьківському класі.
  3. Має бути зв’язок IS-A (спадкування).
Правила Java для перевизначення методів

Розуміння проблеми без перевизначення методу

Давайте розберемося з проблемою, з якою ми можемо зіткнутися в програмі, якщо ми не використовуємо перевизначення методу.

 //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(); } } 
Перевірте зараз

Вихід:

 Vehicle is running 

Проблема полягає в тому, що я повинен забезпечити конкретну реалізацію методу run() у підкласі, тому ми використовуємо перевизначення методу.


Приклад перевизначення методу

У цьому прикладі ми визначили метод запуску в підкласі, як визначено в батьківському класі, але він має певну реалізацію. Ім'я та параметр методу однакові, і між класами існує зв'язок IS-A, тому існує перевизначення методу.

 //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 } } 
Перевірте зараз

Вихід:

 Bike is running safely 

Реальний приклад Java Method Overriding

Розглянемо сценарій, де Bank — це клас, який забезпечує функціональність для отримання процентної ставки. Однак відсоткова ставка залежить від банку. Наприклад, банки SBI, ICICI та AXIS можуть надавати відсоткову ставку 8%, 7% та 9%.

Приклад банку, що перекриває метод Java

Перевизначення методів Java здебільшого використовується в поліморфізмі часу виконання, про який ми дізнаємося на наступних сторінках.

 //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()); } } 
Перевірте зараз
 Output: SBI Rate of Interest: 8 ICICI Rate of Interest: 7 AXIS Rate of Interest: 9 

Чи можемо ми перевизначити статичний метод?

Ні, статичний метод не можна перевизначити. Це можна підтвердити поліморфізмом часу виконання, тому ми дізнаємося про це пізніше.

onclick js

Чому ми не можемо перевизначити статичний метод?

Це тому, що статичний метод пов’язаний з класом, тоді як метод екземпляра пов’язаний з об’єктом. Статика належить до області класу, а екземпляр належить до області купи.


Чи можемо ми перевизначити основний метод Java?

Ні, тому що основний — це статичний метод.


Різниця між перевантаженням методу та перевизначенням методу в java

Клацніть мене, щоб дізнатися про різницю між перевантаженням і перевизначенням методу


Більше тем про перевизначення методів (не для початківців)

Перевизначення методу за допомогою модифікатора доступу

Давайте розглянемо концепцію перевизначення методу за допомогою модифікатора доступу.

Обробка винятків із перевизначенням методу

Давайте розглянемо концепцію перевизначення методу з обробкою винятків.