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]>

>  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 Associatehttp://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]>
>
>>
>> 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]
>
>
>
> >
>


-- 
Zaedy Dantas Sayão
Graduando em Ciência da Computação DCC/UFRJ
http://www.manufato.com.br/
MSN: [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