logo

Vai Java mēs varam ignorēt statisko metodi?

Java valodā, noteicošais un pārslodze ir divas vissvarīgākās iezīmes objektorientētā programmēšana . Funkcija tiek izmantota, ja programmētājs vēlas sasniegt polimorfisms . Jautājums, vai mēs varam ignorēt statisko metodi Java vai Vai jūs varat pārslogot statisko metodi Java ir divi vissvarīgākie jautājumi, kas tiek uzdoti Java intervija . Šajā sadaļā mēs īsumā sapratīsim pārslodzi un ignorēšanu. Mēs esam arī izskaidrojuši atbildi uz kāpēc mēs nevaram ignorēt statisko metodi Java?

Statiskā metode

Metode, kurai pirms metodes nosaukuma ir statisks atslēgvārds, ir pazīstama kā a statiskā metode . Tas ir pazīstams arī kā a klases līmeņa metode . Statiskās metodes kopiju koplieto visi klases objekti.

 public static int sum() { } 

Mēs varam izsaukt statiskās metodes, izmantojot klases nosaukumu. Piemēram, Math.abs(a) metodi . Metode atgriež nodotā ​​argumenta absolūto vērtību. Statiskā metode nevar piekļūt gadījumu mainīgajiem vai metodēm.

Metodes ignorēšana

Tā ir iezīme objektorientētā programmēšana . To izmanto, lai panāktu izpildes laika polimorfismu. Apakšklase nodrošina specifisku metodes ieviešanu, ko jau nodrošina tās vecākklase, kas pazīstama kā metodes ignorēšana. Metodes parakstam vecāku un bērnu klasē ir jābūt vienādam. In metodes ignorēšana , kura metode ir jāizpilda, tiek izlemts izpildes laikā. Lēmums tiek pieņemts atbilstoši objektam, kuru izsaucām.

Metode Pārslodze

Tā ir arī objektorientētas programmēšanas iezīme. To izmanto, lai panāktu kompilēšanas laika polimorfismu. Tas ļauj mums izmantot vienu un to pašu metodes nosaukumu, bet atšķirīgus parakstus. Ja klasei ir vairāk nekā viena metode ar tādu pašu nosaukumu, bet atšķirīgu metodes parakstu, to sauc par metodes pārslodze .

Mēs esam iemācījušies, kas ir pārslodze un svarīgāks. Tagad pārejam pie lietas būtības.

Vai mēs varam pārslogot statisko metodi?

Atbilde ir . Mēs varam pārslogot statiskās metodes. Bet atcerieties, ka metodes parakstam jābūt atšķirīgam. Piemēram, apsveriet šādu Java programmu.

OverloadStaticMethodExample1.java

 public class OverloadStaticMethodExample1 { //static method public static void display() { System.out.println('Static method called.'); } //overloaded static method public static void display(int x) { System.out.println('An overloaded static method called.'); } //main method public static void main(String args[]) { //calling static method by using the class name OverloadStaticMethodExample1.display(); OverloadStaticMethodExample1.display(160); } } 

Izvade:

 Static method called. An overloaded static method called. 

Šeit rodas jautājums, ka vai mēs varam pārslogot metodes, ja tās atšķiras tikai pēc statiskā atslēgvārda.

Atbilde ir Nē. Mēs nevaram ignorēt divas metodes, ja tās atšķiras tikai ar statisku atslēgvārdu. Piemēram, apsveriet šādu Java programmu.

OverloadStaticMethodExample2.java

 public class OverloadStaticMethodExample2 { //static method public static void sum(int a, int b) { int c=a+b; System.out.println('The sum is: '+c); } //non-static method public void sum(int a, int b) { int c=a+b; System.out.println('The sum is: '+c); } //main method public static void main(String args[]) { //calling static method by using the class name OverloadStaticMethodExample2.sum(12, 90); } } 

Kad mēs apkopojam iepriekš minēto programmu, tā parāda šādu kļūdu.

 error: method sum(int,int) is already defined in class OverloadStaticMethodExample2 

Vai mēs varam ignorēt statisko metodi?

Nē, mēs nevaram ignorēt statiskās metodes, jo metodes ignorēšana ir balstīta uz dinamisko saistīšanu izpildlaikā, un statiskās metodes tiek savienotas, izmantojot statisko saistīšanu kompilēšanas laikā. Tātad mēs nevaram ignorēt statiskās metodes.

Metodes izsaukšana ir atkarīga no objekta veida, kas izsauc statisko metodi. Tas nozīmē:

  • Ja mēs izsaucam statisko metodi, izmantojot vecākklases objektu, sākotnējā statiskā metode tiks izsaukta no vecākklases.
  • Ja mēs izsaucam statisko metodi, izmantojot bērnu klases objektu, tiks izsaukta bērna klases statiskā metode.

Nākamajā piemērā ParentClass ir statiska metode ar nosaukumu display() un arī ChildClass ir tāds pats metodes paraksts. Metode atvasinātajā klasē (ChildClass) slēpj metodi bāzes klasē. apskatīsim piemēru.

OverloadStaticMethodExample3.java

 public class OverloadStaticMethodExample3 { public static void main(String args[]) { ParentClass pc = new ChildClass(); //calling display() method by parent class object pc.display(); } } //parent class class ParentClass { //we cannot override the display() method public static void display() { System.out.printf('display() method of the parent class.'); } } //child class class ChildClass extends ParentClass { //the same method also exists in the ParentClass //it does not override, actually it is method hiding public static void display() { System.out.println('Overridden static method in Child Class in Java'); } } 

Izvade:

 display() method of the parent class.