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