Boa noite pessoal, estou com uma dúvida aqui novamente, acho que é simples !
tenho esse código:
public abstract class Info {
public abstract void load();
}
Bom, como a classe é abstrata ela pode possuir esse método abstrato; a minha primeira
classe não abstrata na arvore de herança DEVE implementar o método abstrato.
public interface Data {
public abstract void load();
}
Uff, então, todo método em uma insterface é inplicitamente - public e abstract
portanto ao implementar a interface DEVO implementa-lo. Não preciso se minha classe for abstrata.
Porém tenho Employee aqui que compila normalmente, e esse método que possue o mesmo
nome na declaração da superclasse e na interface se refere a superclasse… Como fica o contrato da interface ?!
public class Employee extends Info implements Data {
public void load() { /* do something */
}
}
Vlw galera !!!
Compila normal porque Info tem o método com as mesmas assinaturas da Interface.
Blz !!! eu vi aqui …
Mas e o contrato da interface ?! Não fica para a subclasse porque eu testei !
Simplesmente posso e pronto ?!!!
Vlw !!!
[quote=Gustavo Santos]Blz !!! eu vi aqui …
Mas e o contrato da interface ?! Não fica para a subclasse porque eu testei !
Simplesmente posso e pronto ?!!!
Vlw !!! [/quote]
Como nao fica?
[quote=Gustavo Santos]Blz !!! eu vi aqui …
Mas e o contrato da interface ?! Não fica para a subclasse porque eu testei !
Simplesmente posso e pronto ?!!!
Vlw !!! [/quote]
Qm te falou que é o método do Abstrato que vc ta implementando? E qm te falou que é método o da Interface?
Veja que sua classe tem que ter um método chamado load e sem retorno.
Esse método implementado já não basta para a classe Abstrata? Esse método implementado já não basta para a Interface?
Leia individualmente a classe/interface e depois classe/classeAbstrata e veja que com apenas uma declaração vc já faz com que sua classe esteja OK para compilar.
Blz !!! entendii aqui !!!
Vlw galera !!