Jump to content


Photo

Classes Abstratas E Interface


  • Faça o login para participar
2 replies to this topic

#1 Ryck

Ryck

    Normal

  • Usuários
  • 84 posts
  • Sexo:Não informado

Posted 25/03/2006, 21:32

A classe abstrata não pode ser instanciada pois ela existe somente para ser herdada.Na classe abstrata podos ter metodos sem parâmetros para que a classe que a herde os coloque.No caso das interfaces somente podemos criar métodos sem parâmetros e com a visibilidade PUBLIC.

1ºQuais são as outras diferenças entre classes abstratas e interfaces?

2ºQuando devemos usar uma e quando devemos usar a outra?

3ºJá que estamos falando de classes vocês
poderiam me falar uam utiliudade real da Reflexão?

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 26/03/2006, 08:54

1º - Vamos comparar!

Classes Abstratas
No PHP5, é implementado o conceito de classe abstrata. Classe abstrata é uma classe que não pode
ter instâncias diretas. Ela só pode ser herdada.



Interfaces
No PHP5 é introduzido o conceito de interfaces. Uma interface cria um protocolo que define funções
que devem ser implementadas por uma classe. Veja o erro gerado no caso abaixo.


Fonte: PHP5, Orientação a Objetos e Design Patterns, por Pablo Dall'Oglio.

Bom, vimos que a classe abstrata não pode ser instanciada apenas extendida, é como nós fazemos uma classe no php4 e usamos apenas extendendo. Mas no php5 podemos definir um método como obrigatório, definindo-o assim como abstract. E também na classe abstrata você possui métodos com comportamento como em qualquer outra.

No caso da interface ela dita as funções que a classe deverá ter. Se não encontrar irá retornar um erro. E na interface só há definições dos métodos que deverão haver na classe que for implementada por ela.

2º - Entendendo cada uma você saberá quando usar.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 27/03/2006, 11:24

3º qual sua dúvida em relação a utilidade? vc não acha útil?

PS: To respondendo com uma pergunta porque o assunto já foi, e há muito tempo, amplamente discutido... e praticado....
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq