Atšķirības starp Java metodes pārslodzi un metodes ignorēšanu ir šādas:
Metode Pārslodze | Metodes ignorēšana |
|---|---|
| Metodes pārslodze ir kompilēšanas laika polimorfisms. | Metodes ignorēšana ir izpildlaika polimorfisms. |
| Metodes pārslodze palīdz palielināt programmas lasāmību. | Metodes ignorēšana tiek izmantota, lai piešķirtu specifisku metodes ieviešanu, ko jau nodrošina tās vecākklase vai virsklase. |
| Tas notiek klasē. | To veic divās klasēs ar mantojuma attiecībām. |
| Metodes pārslogošanai var būt vai nav nepieciešama mantošana. | Metodes ignorēšanai vienmēr ir nepieciešama mantošana. |
| Metožu pārslodzes gadījumā metodēm ir jābūt vienādam nosaukumam un dažādiem parakstiem. | Metodes ignorēšanā metodēm ir jābūt tādam pašam nosaukumam un tādam pašam parakstam. |
| Metodes pārslodzes gadījumā atgriešanās veids var būt vai nevar būt vienāds, bet mums vienkārši ir jāmaina parametrs. | Metodes ignorēšanas gadījumā atgriešanas veidam ir jābūt vienādam vai līdzvariantam. |
| Pārslogotām metodēm tiek izmantota statiskā saistīšana. | Ignorējošām metodēm tiek izmantota dinamiskā saistīšana. |
| Slikta veiktspēja kompilācijas laika polimorfisma dēļ. | Tas nodrošina labāku veiktspēju. Iemesls tam ir tāds, ka ignorēto metožu saistīšana tiek veikta izpildlaikā. |
| Privātās un galīgās metodes var būt pārslogotas. | Privātās un galīgās metodes nevar ignorēt. |
| Metodes pārslodzes laikā argumentu sarakstam ir jābūt atšķirīgam. | Argumentu sarakstam ir jābūt tādam pašam kā metodes ignorēšana. |
Metodes pārslodze Java
Metode Pārslodze ir Sastādīt laika polimorfismu . Metodes pārslodzes gadījumā vairāk nekā vienai metodei klasē ir viens un tas pats metodes nosaukums ar atšķirīgu parakstu. Metodes pārslodzes gadījumā atgriešanas veids var būt vai nevar būt vienāds, taču mums ir jāmaina parametrs, jo java mēs nevaram panākt metodes pārslodzi, mainot tikai metodes atgriešanas veidu.
Metodes pārslodzes piemērs:
Java
// Java Program to Implement // Method Overloading import java.io.*; class MethodOverloadingEx { static int add(int a, int b) { return a + b; } static int add(int a, int b, int c) { return a + b + c; } // Main Function public static void main(String args[]) { System.out.println('add() with 2 parameters'); // Calling function with 2 parameters System.out.println(add(4, 6)); System.out.println('add() with 3 parameters'); // Calling function with 3 Parameters System.out.println(add(4, 6, 7)); } }> Izvade
add() with 2 parameters 10 add() with 3 parameters 17>
Metodes ignorēšana Java
Metodes ignorēšana ir Izpildes laika polimorfisms . Metodes ignorēšanā atvasinātā klase nodrošina specifisku metodes ieviešanu, ko jau nodrošina bāzes klase vai vecākklase. Metodes ignorēšanā atgriešanas veidam ir jābūt vienādam vai līdzvariantam (atgriešanas veids var atšķirties tajā pašā virzienā kā atvasinātā klase).
Metodes ignorēšanas piemērs:
Java // Java Program to implement // Method Overriding import java.io.*; // Base Class class Animal { void eat() { System.out.println('eat() method of base class'); System.out.println('eating.'); } } // Inherited Class class Dog extends Animal { void eat() { System.out.println('eat() method of derived class'); System.out.println('Dog is eating.'); } } // Driver Class class MethodOverridingEx { // Main Function public static void main(String args[]) { Dog d1 = new Dog(); Animal a1 = new Animal(); d1.eat(); a1.eat(); // Polymorphism: Animal reference pointing to Dog object Animal animal = new Dog(); // Calls the eat() method of Dog class animal.eat(); } }> Izvade
eat() method of derived class Dog is eating. eat() method of base class eating. eat() method of derived class Dog is eating.>
Iepriekš minētās programmas skaidrojums:
Šeit mēs redzam, ka atvasinātajā klases nosaukumā ir ignorēta metode eat(). Suns ko jau nodrošina bāzes klases nosaukums Dzīvnieks . Kad mēs izveidojam klases Dog instanci un izsaucam metodi eat(), mēs redzam, ka tiek palaista tikai atvasinātā klases eat() metode, nevis bāzes klases metode eat(), un kad mēs izveidojam klases Animal gadījumu un izsaucam eat( ) metodi, mēs redzam, ka atvasinātās klases metodes eat() vietā tiek izpildīta tikai bāzes klases metode eat().