PHP'de OOP'de Ebeveyn Yöntemlerini Geçersiz Kılma
Bir alt sınıf, aynı isimde bir yöntem oluşturarak ebeveyn yöntemini geçersiz kılabilir. Bir örnek üzerinden inceleyelim. Aşağıdaki ebeveyn sınıfımız olduğunu varsayalım:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Şimdi alt sınıfta aynı isimde bir yöntem oluşturalım:
<?php
class Student extends User {
public function setName($name) {
}
}
?>
Genellikle, ebeveyn yöntemlerini geçersiz kılmak, bu yöntemin davranışını değiştirmek veya tamamlamak için gereklidir. Bizim durumumuzda, isim uzunluğu için bir kontrol ekleyelim:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'student name error';
}
}
}
?>
Şimdi, gerçekten de geçersiz kılınan yöntemin çağrıldığından emin olalım. Öncelikle alt sınıfın bir nesnesini oluşturalım:
<?php
$student = new Student;
?>
Şimdi yöntemimizi, ona geçerli bir değer ileterek çağıralım:
<?php
$student->setName('john');
?>
Şimdi ise yöntemi, geçersiz bir değer ileterek çağıralım. Sonuç olarak, oluşturulan istisnayı göreceğiz:
<?php
$student->setName(''); // hata
?>
User sınıfında yaş için
getter ve setter yapın.
Employee sınıfında yaş setter'ını
geçersiz kılın ve içinde yaşın
18 ile 65 yaş arasında
olduğunu kontrol edin.