⊗ppOpIhOPM 28 of 107 menu

Sobrescrevendo métodos da classe pai em OOP em PHP

Uma classe filha pode sobrescrever um método da classe pai, criando um método com o mesmo nome. Vamos ver um exemplo. Suponha que temos a seguinte classe pai:

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

Vamos criar um método com o mesmo nome na classe filha:

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

Geralmente, a sobrescrita de métodos da classe pai é necessária para alterar ou complementar o comportamento desse método. No nosso caso, vamos adicionar uma verificação do comprimento do nome:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'erro no nome do estudante'; } } } ?>

Vamos verificar se é o método sobrescrito que está sendo chamado. Primeiro, vamos criar um objeto da classe filha:

<?php $student = new Student; ?>

Agora vamos chamar nosso método, passando um valor válido para ele:

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

E agora vamos chamar o método, passando um valor inválido para ele. Como resultado, veremos a mensagem de erro:

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

Na classe User, crie um getter e um setter para a idade.

Na classe Employee, sobrescreva o setter de idade e adicione uma verificação para garantir que a idade esteja entre 18 e 65 anos.

bydeenesfrptru