3. Herança
Permite reutilizar atributos e métodos já definidos
em uma outra classe;
Elimina eventuais duplicações ou reescritas de
código;
Classes-filha (subclasses) herdam implementações
da classe-pai (superclasse) de acordo com uma
hierarquia;
3
4. Herança
Uma subclasse
pode herdar
todos os
componentes de
uma classe pai;
Permite a
criação de novas
classes sem
duplicação de
código; 4
Pessoa
# nome: String
+ escreverNome()
Juridica
- cnpj: String
+validarCNPJ(): Boolean
Fisica
- cpf: String
+validarCPF(): Boolean
Superclasse: Características comuns
Subclasses: Características específicas
5. Herança
Usamos a palavra reservada extends na assinatura
de uma classe para estabelecer uma hierarquia;
Sintaxe:
5
<?php
class Filha extends Pai
{
// ...
7. Exercício
• Etapa 1 – Preparação do Domínio
Crie uma pasta em htdocs chamada heranca;
Na pasta heranca, crie uma pasta chamada
classes;
7
8. Exercício
Etapa 2 - Crie as seguintes classes na pasta
heranca/classes:
8
Funcionario
# nome: string
# salario: float
+ relatorioFunc()
Gerente
- projeto: string
Programador
- linguagem: string
OBS 1: Crie métodos
get e set caso seja necessário.
Construtores também podem
ser utilizados.
OBS 2: O métodos relatorio
simplesmente exibe as
informações do funcionário
no navegador
9. Exercício
• Etapa 3 – Criação de um formulário HTML
Crie um formulário HTML que permita ao usuário
digitar o nome, salário de um funcionário, além
de informar se o mesmo é um gerente ou
programador;
Método de envio: POST;
Os dados deverão ser submetidos para o script
“exibirFunc.php”;
Salve o documento HTML na pasta heranca com o
nome index.html;
9
10. Exercício
• Etapa 4 – Criação do script exibirFunc.php na
pasta herança
O script deverá inicialmente receber os dados submetidos
pelo formulário HTML;
Em seguida, o script deverá criar um objeto da classe que
representa o cargo do funcionário;
Com o objeto criado, os dados enviados a partir do
formulário deverão ser submetidos para o mesmo;
O script deverá executar o método relatorioFunc,
objetivando apresentar os dados do funcionário;
10
12. Polimorfismo
Permite que subclasses possuam métodos iguais
(com a mesma assinatura) de uma superclasse, mas
com comportamentos diferentes;
As implementações de tais métodos são redefinidas
nas classes-filhas;
Classes-filha (subclasses) herdam implementações
da classe-pai (superclasse) de acordo com uma
hierarquia;
12
15. Exercício
• Etapa 1 – Preparação do Domínio
Crie uma pasta em htdocs chamada
polimorfismo;
Na pasta polimorfismo, crie uma pasta chamada
classes;
15
16. Polimorfismo
Etapa 2: Crie as seguintes classes na pasta
polimorfismo/classes :
16
Conta
# saldo: float
+ deposita(float)
+ saca(float)
+ imprimeExtrato()
ContaCorrente
+ saca(float)
ContaPoupanca
OBS: Crie os métodos
get e set necessários. Construtores
podem ser criados.
OBS: O método saca da
Subclasse ContaCorrente
Deverá descontar uma
taxa de 10 centavos em
cada saque.
17. Exercício
• Etapa 3 – Criação do script index.php na pasta
polimorfismo
O script deverá criar um objeto para cada tipo de conta;
Em seguida, o script deverá definir o saldo inicial de R$
200,00 na conta corrente e R$ 500,00 na poupança;
Após a definição do valor inicial de cada conta, saque R$
100,00 de cada conta;
O script deverá executar o método imprimeExtrato de
cada conta, exibindo seu saldo final;
17