- - Apmācība: Metodes ievērošana JAVA - Labākās prakses programmēšana

Apmācība: Metodes ievērošana JAVA - labākās prakses programmēšana

Mantojuma laikā, kad metodes definīcijai irtas pats metodes paraksts (metodes nosaukums + parametra paraksts) un atgriešanas tips apakšklasē kā tās superklase, tad tiek uzskatīts, ka apakšklases metode pārspēj tās superklases metodi, un mehānisms tiek saukts par metodes pārsniegšanu.

Kad ir izveidots apakšklases objekts, kadpārsniegto metodi sauc par tad apakšklases objekts attiecas uz metodi, kas ir definēta apakšklasē, kas nozīmē, ka virsklases definētā metode, kas tiks pārsniegta, tiks paslēpta. Lai piekļūtu superklasē aprakstītajai metodei, apakšklasei var piekļūt, izmantojot “super” atslēgvārdu.

OOP gadījumā metodes ignorēšana ir funkcija, kas ļaujapakšklase nosaka specifisku metodes ieviešanu, kas jau ir definēta vienā no tās superklasēm ”. Starp ignorētajām metodēm to, kura metodes versija tiks izsaukta, noteiks izsaucošais objekts izpildes laikā. Tieši to sauc Darbības laika polimorfisms tā kā pārspīlētās metodes īsteno polimorfisma “vienu saskarni, vairākkārtēju izmantošanu” aspektu.

Metodes ignorēšanas gadījumā Java izpildlaika sistēma dinamiski atrisina metodes izsaukšanu izpildes laikā, tā saukto Vēla iesiešana.

Metodes svarīgākās iezīmes

  • Apakšklases primārās metodes piekļuves līmenis nevar būt vairāk ierobežojošs nekā superklases pārsniegtā metode.
  • Tiks teikts, ka metodes viena otru ignorē, ja starp nodarbībām ir vecāku un bērnu attiecības.
  • Nevar ignorēt privāto un galīgo metodi.
  • Statiskās metodes nevar ignorēt, bet tās var atkārtoti deklarēt.
  • Paketes publiskās vai aizsargājamās galīgās metodes var pārspēt tikai ar tās apakšklases, kas pastāv kādā citā citā paketē.
  • Konstruktorus nevar apgāzt.
  • Pārvarēts var mest jebkuru nepārbaudītu izņēmumu.

Priekšrocības

Atbalsta specializāciju, t.i. mantošanas laikā, kad apakšklase manto vecāku klasi, tad apakšklasei būs visas vecāku klases pazīmes, un šīs apakšklases augšpusē tā var ieviest īpašu funkcionalitāti galvenajai metodei, kurai ir tāds pats metodes paraksts un atgriešanas tips tāds pats kā tās superklasē.

Java programma

class Animal{
void sound(){
System.out.println("default sound...");
}
}
class Cat extends Animal{
void sound(){
System.out.println("mew mew...");
}
}
class Dog extends Animal{
void sound(){
System.out.println("vow vow...");
}
}
class MethodOverrideDemo{
public static void main(String args[]){
Cat cat = new Cat();
Dog dog = new Dog();
System.out.println("--------Cat--------");
cat.sound();
System.out.println("--------Dog--------");
dog.sound();
}
}

Izeja

metode_pārdošana

Koda un izvades skaidrojums

Iepriekš minētajā piemērā suns un kaķis ir abiapakšklases, kas atvasinātas no Dzīvnieku superklases. Visās klasēs (izņemot ClassOverrideDemo klasi) atradīsit metodes skaņu (), kas vispārīgā veidā ir definēta sadaļā Dzīvnieku klase, un Kaķu un suņu klasē ir pārsniegta Dzīvnieku klases skaņas () metode ar īpašu ieviešanu atbilstoši scenārijam. . Acīmredzot kaķa skaņa ir “mew mew…”, un suņa “zvērests zvērests…” skaņa () šajās klasēs tiek noteikta pēc vajadzības. Ja mēs izveidosim klases Cat objektu, tas izmantos skaņas () metodi Cat klasē, tas pats attiecas uz suņu klases objektu. Es domāju, ka no izejas viss ir skaidrs.

Šeit atradīsiet norādes par vairāk noderīgām pamācībām un galīgām Java programmēšanas vadlīnijām.

Komentāri