Retificando:

"Moral da história: se o método *não estiver* declarado em uma
superclasse, dará erro de compilação, mesmo que esteja em uma interface."

"Eh ALTAMENTE RECOMENDAVEL q vcs usem (ou seja, senao usarem vamos dar
errado...hehe), mas nao eh obrigatorio (compila senao usar....). "
Isto só vale para depois que o professor explicar Annotations, obviamente!

Peter P. Lupo
Undergraduating in Computer Science DCC/UFRJ
Sun Certified Java Associate
http://pplupo.googlepages.com/
Cell. +55 (21) 81742487



Zaedy Sayão wrote:
> o.O
>
> Well, ja q o Peter tocou no assunto....
>
> Eu ia deixar pra explicar amanha. Detesto explicar coisas teoricas por
> email, fora a preguica de escrever.....
> Por isso dei uma acochambrada pra nao complicar a cabeca do cara, q
> parece estar meio perdido, mas la vai...
> Eh pq na verdade, existe uma certa confusao entre classe abstrata e
> interface...Achei q se explicasse o q deveria a fundo iria complicar
> mais do q ajudar o cara pra fazer o exercicio, mas realmente vacilei
> em deixar pra la e falar conceitos errados....
> BTW, ja falei sobre isso nas 2 monitorias......
>
> Interfaces contem a assinatura de metodos.
> Classe abstrata contem metodo abstrato (metodo q nao tem corpo) e
> *pode *conter tb metodos concretos (metodos com implementacao)
> Interfaces so tem metodos sem implementacao, nao tem metodo concreto.
> Quando vc implementa uma interface, em geral, faz isso pra obrigar a
> classe q esta implementando ter todos aqueles metodos q foram
> definidos na interface, com a mesma assinatura e fazer com q vc
> escreva este metodo na classe q a implementa, ex:
>
> interface X
> ClassA implements X
>
> ClasseA tera q ter todos os metodos q a interface X e tera q
> escreve-los, ou seja, torna-los concretos.
> Isso em geral, por isso prefiro explicar pessoalmente. Por exemplo,
> ClassA pode ser abstrata, e por isso nao ter q "tornar" todos os
> metodos concretos...
>
> Ai comeca a complicar, prefiro explicar melhor amanha....
> Alias, me lembrem e cobrem na hora da monitoria, pq senao eu vou
> esquecer.......rs
>
> Quando disse isso abaixo:
>
> > No caso o texto diz q um determinado metodo é *implementado*, ou
> seja, em termos praticos, "esta escrito" na interface Comparator e por
> isso, quando vc *implementar *a interface, tera q *sobreescrever*, pq
> ele ja foi escrito antes.....hehe
>
> Leia isso:
>
> > No caso, o texto diz q um determinado metodo eh implementado, ou
> seja, em termos praticos, esta descrito, contem a ssinatura na
> interface Comparator, por isso, quando vc implementar a interface,
> tera q escrever o metodo com a mesma assinatura q ele tem na interface.
> Palavras distintas para representar a mesma coisa mas q fazem
> diferenca teorica, por isso o Peter puxou minha orelha.....hehe
>
> Peter, nao entendi isso aqui:
>
> >se o método estiver não estiver
>
> O metodo esta ou nao esta?....xD
>
> Olha isso aqui, nao eh de java mas serve:
> http://www.macoratti.net/net_ica1.htm
>
> Alem disso, Annotations, como o Peter falou de @Override ainda vai ser
> dado.
> Eh ALTAMENTE RECOMENDAVEL q vcs usem (ou seja, senao usarem vamos dar
> errado...hehe), mas nao eh obrigatorio (compila senao usar....).
> Comento tb na monitoria melhor sobre.
> Link da api sobre override:
> http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Override.html
>
> Link sobre override, polimorfismo e overload:
> http://www.javafree.org/javabb/viewtopic.jbb?t=856460
>
> Nao sei se esclareceu a confusao ou aumentou....hehehe
>
> []'s
>
>
> 2008/9/21 Peter <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>
>     bom...
>
>     Song, se é uma classe (e para estar em Compare<Song> deve ser),
>     deveria estar começando com letra maiúscula.
>
>     Na verdade, métodos são declarados na interface e não
>     implementados... logo, não é uma redefinição (ou override) e sim
>     uma implementação apenas.
>
>     Quando vcs aprenderem o recurso de Annotations, verão que existe a
>     anotação @Override que pode ser declarada antes de métodos. Ela é
>     utilizada para pedir que o compilador se certifique de que um
>     método está sendo redefinido. Ou seja, estamos escrevendo um
>     método em uma classe e escrevemos antes dele "@Override". Se o
>     método não estiver redefinindo outro, dará erro de compilação.
>     Moral da história: se o método estiver não estiver declarado em
>     uma superclasse, dará erro de compilação, mesmo que esteja em uma
>     interface.
>     Serve para verificar que não erramos a assinatura do método que
>     queremos redefinir.
>
>
>     Abraço!
>
>     Peter P. Lupo
>     Undergraduating in Computer Science DCC/UFRJ
>     Sun Certified Java Associate
>     http://pplupo.googlepages.com/
>     Cell. +55 (21) 81742487
>
>
>
>     Zaedy Sayão wrote:
>>     Sobreescrever eh exatamente o q diz o nome "escrever sobre".
>>     Vc vai escrever o metodo, com a mesma assinatura, mas com o corpo
>>     diferente.
>>
>>     Implementar é pq uma quando vc "usa" uma interface, vc implementa
>>     ela, assim como vc "extende" uma classe com heranca....
>>     ClassA *implements* InterfaceX *extends* ClassB
>>
>>     No caso o texto diz q um determinado metodo é *implementado*, ou
>>     seja, em termos praticos, "esta escrito" na interface Comparator
>>     e por isso, quando vc *implementar *a interface, tera q
>>     *sobreescrever*, pq ele ja foi escrito antes.....hehe
>>
>>     []'s
>>
>>     2008/9/21 André <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>>
>>
>>         Na questão 1 o exercício pede pra eu criar uma Interface chamada
>>         Comparator<song> e 3 classes que irão sobreescrever o método
>>         compare
>>         implementado pela Interface Comparator.
>>
>>         O que significa sobreescrever um método?
>>         O que significa implementar(numa interface)?
>>         Por que song está em minúscula em Comparator<song>?
>>
>>         Isso é só pra começar...
>>
>>
>>
>>
>>
>>     -- 
>>     Zaedy Dantas Sayão
>>     Graduando em Ciência da Computação DCC/UFRJ
>>     http://www.manufato.com.br/
>>     MSN: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>>
>>
>
>
>
>
>
> -- 
> Zaedy Dantas Sayão
> Graduando em Ciência da Computação DCC/UFRJ
> http://www.manufato.com.br/
> MSN: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>
> >

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Comp 
2 - Geral" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/comp2-geral?hl=en
-~----------~----~----~----~------~----~------~--~---

Responder a