[quote]
Uma interface pode definir uma série de métodos, mas nunca conter implementação deles. Ela só expõe
o que o objeto deve fazer, e não como ele faz, nem o que ele tem. Como ele faz vai ser definido em uma
implementação dessa interface[/quote]
Bem… interface funciona justamente como uma interface :lol: , ou seja, uma capa que mostra os métodos que a classe que a implementa possui… Você instancia as calsses, não a interface.
quero fazer com que a classe Usuarios herde os metodos da classe WantHave e da classe PrivateMsg só isso, mas como não tem herança multipla nao to sabendo resolver =).
ai achei que se implementasse os metodos de uma interface, funcionaria como uma gambiarra pra uma herança multipla.
Se vc quer estender a classe IUsuarios prq não torna-la abstrata?
Qndo vc define interface e as classes concretas que irao implementar essa interface estão praticamente fechando um contrato com a Interface ou seja vc deverá implementar todos os metodos…
Se você criar uma interface única para suas duas classes PrivateMsg e WantHave você poderá ter métodos desnecessários em uma classe, a não ser que as duas classes implementem os mesmo métodos mesmo e somente alguns métodos a mais, pois uma Interface determina que sua classe vai ser daquele tipo, no seu caso, do tipo IUsuarios, e quando você for implementá-la você terá que criar todos os métodos contidos no corpo dela, é uma condição que ela impõe pra que você posso utiliza-la. Você pode utilizar essa solução, acredito que resolva seu problema.
public class PrivateMsg implements IPrivateMsg {
// metodos
}
public class WantHave implements IWantHave {
// metodos
}
interface IWantHave {
// metodos referentes à WantHave
}
interface IPrivateMsg {
// metodos referentes à PrivateMsg
}
class Usuarios implements IPrivateMsg, IWantHave {
// Aqui você deverá criar todos os métodos contidos nas interfaces IWantHave e IPrivateMsg
}
Espero ter ajudado, caso não tenha sido claro, seria legal se você colocasse qual a sua real necessidade
para que pudessemos ajudá-lo melhor.
Sou novato em java e OO também, mais gostaria de contribuir.
Eu entendo a utilidade da interface mais ou menos assim:
Imagine um desenvolvimento em grupo, você vai definir uma tela de login, então você entra em acordo que deve existir um username e uma senha, ai se subdivide as tarefas entre vários colaboradores (uma equipe) como você garante que todos vão implementar dessa forma o login?
Com as interfaces, quando você cria uma interface você define uma forma padrão de algo ser implementado, então todas as classes que implementarem a interface, obrigatoriamente terão de seguir aquele padrão que você definiu na interface (o contrato)
Bom, espero ter ajudado, e se algo descrito estiver errado, por favor me corrijam.