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() в подклас, затова използваме отмяна на метода.

добавяне на java низ

Пример за отмяна на метод

В този пример сме дефинирали метода 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 

Можем ли да отменим статичния метод?

Не, статичен метод не може да бъде отменен. Може да се докаже чрез полиморфизъм по време на изпълнение, така че ще го научим по-късно.


Защо не можем да заменим статичния метод?

Това е така, защото статичният метод е обвързан с клас, докато методът на екземпляр е обвързан с обект. Статичното принадлежи към областта на класа, а екземплярът принадлежи към областта на купчината.


Можем ли да заменим основния метод на Java?

Не, защото основният е статичен метод.


Разлика между претоварване на метод и отмяна на метод в java

Щракнете върху мен за разликата между претоварване и отмяна на метода

здравей свят java

Още теми за замяна на метод (не е за начинаещи)

Замяна на метод с модификатор на достъп

Нека видим концепцията за замяна на метод с модификатор за достъп.

Обработка на изключения с отмяна на метода

Нека видим концепцията за отмяна на метод с обработка на изключения.