⊗ppOpIhOPM 28 of 107 menu

Yliluokan metodien ylikirjoittaminen OOP:ssa PHP:ssä

Aliluokka voi ylikirjoittaa yliluokan metodin luomalla metodin samalla nimellä. Katsotaanpa esimerkkiä. Oletetaan, että meillä on seuraava yliluokka:

<?php class User { private $name; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } ?>

Luodaanpa aliluokassa samaniminen metodi:

<?php class Student extends User { public function setName($name) { } } ?>

Yleensä yliluokan metodien ylikirjoittaminen tarvitaan sen metodin käyttäytymisen muuttamiseksi tai täydentämiseksi. Lisätäänpä meidän tapauksessamme pituustarkistus nimelle:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'student name error'; } } } ?>

Varmistetaan, että kutsutaan nimenomaan ylikirjoitettua metodia. Aluksi luodaan olio aliluokasta:

<?php $student = new Student; ?>

Nyt kutsutaan metodia, antamalla sille oikea arvo:

<?php $student->setName('john'); ?>

Ja nyt kutsutaan metodia antamalla sille väärä arvo. Lopputuloksena näemme heitetyn poikkeuksen:

<?php $student->setName(''); // virhe ?>

Luokassa User tee ikä-getteri ja -setteri.

Luokassa Employee ylikirjoita ikä-setteri ja tee siihen tarkistus, että ikä on 18 ja 65 vuoden välillä.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää