PHP5 Orientado a Objetos: Visibilidade, herança e extensões de classes

Este artigo tratará sobre visibilidade, herança e extensão de classes (PHP Orientado a Objetos) com uma linguagem simples e de fácil entendimento, voltada principalmente para aqueles que desejam iniciar sua aventura no PHP-OO.

[ Hits: 34.229 ]

Por: EVERTON DA ROSA em 08/06/2009 | Blog: http://everton3x.github.io


Resumo e conclusão



Resumindo o nosso longo artigo:

Os métodos e propriedades podem ter seu acesso restrito através das declarações public, protected e private. Isso chama-se visibilidade.

Quando a visibilidade é public, significa que o método/propriedade pode ser acessado de qualquer parte do script (através da classe que define o método/propriedade, através de classes que herdam eles ou de fora de qualquer classe).

Quando a visibilidade é protected, o método/propriedade somente pode ser acessado pela classe que os define ou pelas que os herdam.

Já, quando a visibilidade é private, o método/propriedade somente pode ser acessado pela classe que os define.

Quanto a extensão, ela é feita com a palavra reservada extends.

Além disso, convém lembrar que ao definirmos na classe filha método ou propriedade com nome igual a método ou propriedade definidos na classe pai, os da classe filha sobrescrevem os da classe pai. Para chamar os métodos/propriedades da classe pai, deve-se usar parent::nomeDoMedodoOu Propriedade.

Espero que este artigo tenha cumprido com seu objetivo que foi o de apresentar os principais conceitos e tópicos sobre visibilidade, herança e extensão de classes, de forma simples, didática e de fácil entendimento, voltado para iniciantes.

Página anterior    

Páginas do artigo
   1. Introdução
   2. Começando a entender visibilidade
   3. Primeiros passos na visibilidade de métodos
   4. Estendendo classes
   5. Conhecendo mais a extensão de classes
   6. Resumo e conclusão
Outros artigos deste autor

Relatórios com PHP e XSLT - Conceitos iniciais e utilização básica

Utilizando PHP para validar dados passados pelo usuário

Utilizando endereços personalizados no seu servidor web: passo-a-passo

ExtJS: Um excelente framework de JavaScript

Considerações sobre as distribuições

Leitura recomendada

Usando Blocos Dinâmicos com a Classe FastTemplate (Parte 1)

Trabalhando conteúdo dinâmico com Smarty

Relatórios com PHP e XSLT - Conceitos iniciais e utilização básica

Organizando projetos com a classe FastTemplate (parte 2)

Método de Newton e PHP

  
Comentários
[1] Comentário enviado por removido em 08/06/2009 - 15:44h

Muito bom o artigo Everton, está de parabéns!

[2] Comentário enviado por will fernando em 11/07/2009 - 09:16h

Muito bom ! Parabéns !

[3] Comentário enviado por wm em 16/07/2009 - 07:16h

excelente artigo

[4] Comentário enviado por henbran em 26/05/2010 - 08:53h

Bom Dia.
ESTOU COM UMA DÚVIDA EM HERANÇA EXTENDS

tenho 1 classe:
___________________________________
class A{
public function funcaoA(){
//detalhes
}
}
ººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººººº

Então tenho outra classe:
___________________________________
class B extends A{
public function funcaoA(){
//detalhes
}
}
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Quando tento instanciar a classe B, sendo estendida da classe A, não instancia.
ex. $instanciaB = new B(); // não funciona.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Se tiro o extends A da declaração da classe B (ficando assim: class B{ ... }), então instancia.
................................................................................................................
Já cheguei a testar todas as classes vazias, tentando saber se haveria algo de errado com as functions, porém mesmo assim continua no mesmo problema.
*******************************************************************************************
POR FAVOR, COMO EU DEVERIA FAZER ENTÃO???

[5] Comentário enviado por concurso em 08/10/2012 - 13:29h

Incrível o conteúdo, bem elaborado e explicado!

Estou iniciando na prática em php, espero que dê tudo certo.rs

Tem mais conteúdo de php elaborado por ti?

[6] Comentário enviado por everton3x em 18/10/2012 - 08:40h

Obrigado pelo comentário concurso.
Tem mais material sim. É só procurar na lista de artigos do meu perfil http://www.vivaolinux.com.br/perfil/verPerfil.php?login=everton3x


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts