Herança
Uma classe pode herdar atributos ou métodos de uma outra classe. Acrescenta-se após o nome da classe a palavra reservada extends seguida do nome da classe da classe da qual esta var herdar atributos e métodos. A classe que cede os atributos e métodos é chamada de superclasse e a classe que herdar os atributos e métodos recebe o nome de subclasse.A subclasse pode utilizar os atributos e métodos existentes na superclasse, sobrescrever os métodos da superclasse ou criar outros atributos ou métodos.
O PHP procura primeiramente o método na subclasse. Caso o método não exista, ele será procurado na superclasse. Como toda regra existe sua exceção, os métodos definidos com a palavra reservada final, indicando que as subclasses não podem sobrescrever estes métodos, mas veremos isso somente mais a frente.
Para acessar os atributos e métodos da subclasse, devemos utilizar a palavra reservada parent seguida de :: (dois pontos) exemplo: parent::setNome()
Como exemplo vamos criar a classe pai ou superclasse chamada pessoa, arquivo pessoa.php
<?php
/**
* Description of pessoa
*
* @author aluno
*/
class pessoa {
//atributos
protected $id;
protected $nome;
protected $endereco;
//métodos
function __construct($id, $nome, $endereco) {
$this->setId($id);
$this->setNome($nome);
$this->setEndereco($endereco);
}
public function __destruct() {
echo "ID: " . $this->getId();
echo "Nome: " . $this->getNome();
echo "Endereço: " . $this->getEndereco();
}
public function getId() {
return $this->id;
}
public function setId($id) {
$this->id = $id;
}
public function getNome() {
return $this->nome;
}
public function setNome($nome) {
$this->nome = $nome;
}
public function getEndereco() {
return $this->endereco;
}
public function setEndereco($endereco) {
$this->endereco = $endereco;
} } ?>Depois criamos a classe filha ou subclasse chamada aluno, aluno.php.
<?php
/**
* Description of aluno
*
* @author aluno
*/
include 'pessoa.php';
class aluno extends pessoa {
//atributos
protected $rm;
protected $serie;
protected $turma;
//métodos
public function __construct($id, $nome, $endereco, $rm, $serie, $turma) {
parent::__construct($id, $nome, $endereco);
$this->setRm($rm);
$this->setSerie($serie);
$this->setTurma($turma);
}
public function __destruct() {
parent::__destruct();
echo "RM: " . $this->getRm();
echo "Série: " . $this->getSerie();
echo "Turma: " . $this->getTurma();
}
public function getRm() {
return $this->rm;
}
public function setRm($rm) {
$this->rm = $rm;
}
public function getSerie() {
return $this->serie;
}
public function setSerie($serie) {
$this->serie = $serie;
}
public function getTurma() {
return $this->turma;
}
public function setTurma($turma) {
$this->turma = $turma;
}
}
?>
E por último o formulário, arquivo cadastro.php
<?php
include 'aluno.php';
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Cadastro</title>
<style type="text/css">
label {display: block;}
</style>
</head>
<body>
<form name="fcadastro" action="<?php echo $_SERVER['PHP_SELF'];?>" method="get">
<label for="id">ID </label>
<input name="id" type="text" maxlength="5" size="5"/><br>
<label for="nome">Nome </label>
<input name="nome" type="text" maxlength="50" size="50"/><br>
<label for="endereco">Endereço </label>
<input name="endereco" type="text" maxlength="50" size="50"/><br>
<label for="rm">RM </label>
<input name="rm" type="text" maxlength="5" size="5"/><br>
<label for="serie">Série </label>
<input name="serie" type="text" maxlength="10" size="10"/><br>
<label for="turma">Turma </label>
<input name="turma" type="text" maxlength="1" size="1"/><br>
<input value="Salvar" type="submit"/>
</form>
<?php
// put your code here
if(!empty($_GET))
{
$id = $_GET['id'];
$n = $_GET['nome'];
$e = $_GET['endereco'];
$rm = $_GET['rm'];
$s = $_GET['serie'];
$t = $_GET['turma'];
$aluno = new aluno($id, $n, $e, $rm, $s, $t);
}
?>
</body>
</html>
Segue vídeoaula abaixo...
Até a próxima!
Nenhum comentário:
Postar um comentário
Comentemm, vamos compartilhar experiências!