- - Opetusohjelma: Menetelmän ohittaminen JAVAssa - Parhaiden käytäntöjen ohjelmointi

Opetusohjelma: Menetelmän ohittaminen JAVA: ssa - Parhaiden käytäntöjen ohjelmointi

Perinnön aikana, kun menetelmän määritelmällä onsamalla menetelmän allekirjoituksella (menetelmän nimi + parametrien allekirjoitus) ja paluulajilla alaluokassa kuin sen superluokalla, sitten alaluokan menetelmän sanotaan ohittavan sen superluokan menetelmän ja mekanismia kutsutaan menetelmän ohittamiseksi.

Kun alaluokan objekti on luotu, milloinohitettua menetelmää kutsutaan sitten alaluokan objekti viittaa alaluokassa määriteltyyn menetelmään, mikä tarkoittaa, että superluokassa määritelty ohitettu menetelmä piilotetaan. Aluokkaan pääsee superluokassa määritellyn ohitetun menetelmän avulla käyttämällä 'super' -sanaa.

OOP-menetelmissä menetelmän ohittaminen on ominaisuus, joka antaaalaluokka määrittelee menetelmän erityisen toteutuksen, joka on jo määritelty yhdessä sen superluokista ”. Ohitettujen menetelmien joukosta sen menetelmän version, jonka kutsutaan, määrittelee kutsuva objekti ajon aikana. Sitä sitä kutsutaan Ajonaikainen polymorfismi kun ohitetut menetelmät toteuttavat polymorfismin "yhden rajapinnan, monikäyttö" -kohdan.

Menetelmän ohittamisessa Java-ajonaikainen järjestelmä ratkaisee menetelmän kutsumisen dynaamisesti ajon aikana, ns Myöhäinen sitominen.

Menetelmän tärkeimmät ominaisuudet

  • Alaluokan ohitusmenetelmän pääsutaso ei voi olla rajoittavampi kuin superluokan ohitettu menetelmä.
  • Menetelmien sanotaan ohittavan toisensa, kun luokkien välillä on vanhemman ja lapsen välinen suhde.
  • Yksityisiä ja lopullisia menetelmiä ei voida ohittaa.
  • Staattisia menetelmiä ei voida ohittaa, mutta ne voidaan ilmoittaa uudelleen.
  • Paketin julkiset tai suojatut ei-lopulliset menetelmät voidaan ohittaa vain sen alaluokassa, joka on olemassa jossain muussa eri paketissa.
  • Rakentajia ei voida ohittaa.
  • Ohitettu voi heittää minkä tahansa tarkistamattoman poikkeuksen.

edut

Tukee erikoistumista, ts. perinnöissä, kun alaluokka perii vanhempaisluokan, alaluokalla on kaikki vanhemmaluokan piirteet ja alaluokan päällä voidaan toteuttaa erityinen toiminnallisuus ohjaavalle menetelmälle, jolla on sama menetelmän allekirjoitus ja paluutyyppi samat kuin superluokassa.

Java-ohjelma

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();
}
}

ulostulo

method_override

Koodin ja tulosteen selitys

Yllä olevassa esimerkissä koira ja kissa ovat molemmatalaluokat, jotka on johdettu eläinten superluokasta. Kaikista luokista (paitsi MethodOverrideDemo -luokka) löydät menetelmäääni (), joka on määritelty eläinluokassa yleisesti ja Kissa- ja koira-luokassa on ohittanut eläinluokan äänen () menetelmän erityisellä toteutuksella skenaarion mukaisesti . On selvää, että kissan ääni on ”mew mew…” ja koiran ”vannova lupaus…” ääni () on määritelty näissä luokissa tarpeen mukaan. Jos luomme luokan Cat esineen, niin se kutsuu kissan luokan sound () -menetelmän, sama pätee koiran luokan objektiin. Luulen, että tuotoksesta kaikki on selvää.

Katso täältä lisää hyödyllisiä opetusohjelmia ja lopullisia ohjeita Java-ohjelmoinnista.

Kommentit