Fórum poo e interfaces #367051
11/12/2008
0
Um colega me disse que só de usar interfaces num programa delphi você já está usando com. Isso é verdade ou interfaces é um recurso da linguagem (para implementar a POO) e não da plataforma?
pergunto isso porque outras linguagens OO tem interfaces (java, C#) e para ser oo deveriam ter mesmo.
Outra coisa: no help diz que um guid para uma interface é opcional.
mas para que serve uma interface sem guid?
Imagina que eu tenho um objeto instanciado que implementa uma interface e eu quero passar ele para uma variavel do tipo da minha interface.
se a interface não tiver guid, não consigo fazer x := (meuObj as MinhaInterface).
dá erro de ´operator not aplicable to this operand type.´
pergunto isso porque outras linguagens OO tem interfaces (java, C#) e para ser oo deveriam ter mesmo.
Outra coisa: no help diz que um guid para uma interface é opcional.
mas para que serve uma interface sem guid?
Imagina que eu tenho um objeto instanciado que implementa uma interface e eu quero passar ele para uma variavel do tipo da minha interface.
se a interface não tiver guid, não consigo fazer x := (meuObj as MinhaInterface).
dá erro de ´operator not aplicable to this operand type.´
Vitor Rubio
Curtir tópico
+ 0
Responder
Posts
11/12/2008
Vitor Rubio
digamos ainda que meuObj é um objeto do tipo TinterfacedObject, mas eu não sei de onde veio, pode ter sido passado como parametro, pode ter sido criado por um factory method ou pode ser criado dinamicamente por classes persistentes registradas, que registro com registerclass e recupero atraves de uma string.
Então meuObj não é diretamente do tipo que implementa essa interface (a referencia), embora o objeto instanciado apontado por ele seja.
Meuobj é um TinterfacedObject, um ancestral comum.
Porque interfaces sem guid não permitem o typecast e interfaces com guid permitem?
Então meuObj não é diretamente do tipo que implementa essa interface (a referencia), embora o objeto instanciado apontado por ele seja.
Meuobj é um TinterfacedObject, um ancestral comum.
Porque interfaces sem guid não permitem o typecast e interfaces com guid permitem?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)