⊗ppOpIhCOM 29 of 107 menu

PHP'de OOP'de Geçersiz Kılınan Metotların Çağrılması

Geçersiz kılma işleminde, çocuk sınıf ebeveynin geçersiz kılınan metoduna erişimini kaybeder. Ancak, yine de bu metoda erişmek mümkündür. Bu, ebeveyn sınıfı işaret eden parent anahtar kelimesi kullanılarak yapılır.

Ebeveyn metoduna erişime ne zaman ihtiyaç duyabileceğimizi bir örnekle görelim. Aşağıdaki ebeveyn sınıfa sahip olduğumuzu varsayalım:

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

Çocuk sınıfta ebeveynin metodunu geçersiz kıldığımızı varsayalım:

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

Geçersiz kılınan metotta, koşul sağlandığında temelde ebeveyn metodunun kodunun çalıştırıldığı fark edilebilir. Bu, gereksiz kod tekrarına yol açar.

Ebeveyn metodunu çağırarak bundan kurtulabiliriz. Bunu yapalım:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { parent::setName($name); // ebeveyn metodu } else { echo 'student name error'; } } } ?>

Aşağıdaki kod verilmiştir:

<?php class User { private $age; public function setAge($age) { if ($age >= 0) { $this->age = $age; } else { echo 'need age more 0'; } } } class Employee extends User { public function setAge($age) { if ($age <= 120) { if ($age >= 0) { $this->age = $age; } else { echo 'need age more 0'; } } else { echo 'need age less 120'; } } } ?>

Employee sınıfında, yaş setter'ını, orijinal ebeveyn metodunu kullanarak düzeltin (sadeleştirin).

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet