extends
Permite
classes
com
variáveis
e
funções
similares
a
uma
outra
classe
.
De
fato
,
é
uma
boa
prática
definir
classes
genéricas
que
podem
ser
utilizadas
em
todos
os
seus
projetos
,
e
adaptar
essas
classes
com
as
necessidades
específicas
de
cada
projeto
.
Para
facilitar
isso
,
classes
podem
ser
extensões
de
outras
classes
.
A
classe
estendida
ou
derivada
tem
todas
as
variáveis
e
funções
da
classe
base
(
isto
é
chamado
herança
,
afora
o
fato
que
ninguém
morreu
)
e
mais
aquelas
que
venha
a
acrescentar
na
versão
estendida
.
Não
é
possível
subtrair
uma
classe
,
ou
seja
,
indefinir
quaisquer
funções
ou
variáveis
existentes
.
Uma
classe
estendida
é
sempre
dependente
de
uma
única
classe
base
,
e
portanto
,
herança
múltipla
não
é
suportada
.
Classes
são
estendidas
utilizando
a
instrução
'
extends
'
.
Isto
define
uma
classe
chamada
CarrinhoDeComprasNomeado
que
tem
todas
as
variáveis
e
funções
de
CarrinhoDeCompras
mais
a
variável
$proprietario
e
uma
função
set_proprietario(
)
.
Você
pode
criar
um
carrinho
nomeado
da
maneira
usual
e
configurar
e
obter
o
proprietário
do
carrinho
.
Você
ainda
pode
continuar
utilizando
carrinhos
normais
e
carrinhos
nomeados
:
Isto
é
chamado
relacionamento
"
pai-filho
"
.
Você
cria
uma
classe
pai
e
utiliza
extends
para
criar
uma
nova
classe
baseada
na
classe
pai
:
sua
classe
filha
.
Você
ainda
pode
criar
uma
nova
classe
estendida
a
partir
dessa
classe
filha
e
assim
por
diante
.
Nota
:
As
classes
precisam
ser
definidas
antes
de
serem
utilizadas
!
Se
você
estender
a
classe
CarrinhoDeComprasNomeado
da
classe
CarrinhoDeCompras
,
você
precisa
antes
criar
a
classe
chamada
CarrinhoDeCompras
.
Se
você
quiser
criar
uma
outra
classe
chamada
CarrinhoDeComprasNomeadoAmarelo
baseada
na
classe
CarrinhoDeComprasNomeado
você
tem
que
definir
CarrinhoDeComprasNomeado
primeiro
.
Trocando
em
miúdos
:
a
ordem
em
que
as
classes
são
definidas
é
importante
.