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