Herança Múltipla

8 respostas
M

Olá pessoal!!

Gostaria de saber se java possui suporte para Herança múltipla, ou seja, uma classe ser herdeira de mais de uma classe. Isso é possível, como faço em java?

8 Respostas

G

Oi monstrinho… :grin:

Java não oferece suporte para Herança Múltipla… mas há um item importante que é a Interface!

dê uma olha nessa thread…

http://www.portaljava.com.br/home/modules.php?name=Forums&file=viewtopic&t=9945&highlight=heran%E7a+multipla&sid=841ff361d92747983860c16732fbd45a

:wink:

M

Amigo,

Como seria a implementação de interface? Pois não tenho a mínima idéia de como se implementa este tipo…

F

um exemplo simples de interface:

interface X{
 public void y();
}
public class Z implements X{
 public void y(){
  ...
 }
}

interface parecido com uma classe abstrata, soh q nenhum dos metodos pode ter um corpo (todos tem q ser abstratos), todos os metodos tem q ser publicos (implicita ou explicitamente) e nao tem construtor…

exemplos de interfaces na API java sao: KeyListener, MouseListener e ActionListener…

G

monstrinho, esse exemplo que o Felipe postou é muito legal… :cool:
aqui vão outras dicas sobre Interfaces:

  • uma classe pode implementar quantas interfaces desejar

  • não se pode ter atributos em interfaces, exceto atributos sinalizados como static final(constantes)

  • a classe que declarar que implementa, deve ter implementações para todos os métodos declarados na interface

  • um erro comum, cometido é considerar que interfaces são um mecanismo para a implementação da herança múltipla, pois com interfaces não há reaproveitamento de código, portanto não há herança!

Exemplo:.

analisemos o modelo abaixo:

se desejássemos enviar a mensagem ganho(), poderíamos faze-lo indiferentemente tanto para objetos da classe Professor quanto para objetos da classe Monitor…

Porém, como devemos especificar o parâmetrode um método que vai se comunicar com os objetos somente através do método ???

com a ajuda da INTERFACE !!! :grin: :grin:

Interface Trabalhador

public interface Trabalhador
{
   public float ganho();
}

Classe Professor que implementa Trabalhador

public class Professor implements Trabalhador
{
 .....

   public float ganho();

....

}

Classe Monitor que extende Estudante e implementa Trabalhador

public class Monitor extends Estudante implements Trabalhador
{
 .....

   public float ganho();

....

}

valeu…

:wink:

M

Pessoal,

É o seguinte, tenho um pacote que se chama “sga”

public class SGA extends JFrame

que é a classe principal do meu projeto. E tenho outra

public class Logon extends JInternalFrame

quero usar nesta última classe um atributo que está declarado na primeira classe, que é o seguinte:

DBConnection DB = new DBConnection();

como posso fazer tal coisa?

M

tem como vc simular isso importando os pacotes

J

Tudo bom!

Declare um método getter na classe SGA que retorna este atributo e depois utilize-o na segunda classe.
Ex:

public class SGA extends JFrame {
...
public DBConnection getConnection(){
return DB;
}
...
pubic class Logon extends JInternalFrame {
...
SGA sga = new SGA();
DBConnection db = sga.getConnection();
}

Abraços.

J

Nem sempre dá certo importando pacotes, as vezes basta a classe que vc deseja ultilizar está no projeto, ou melhor , está contido na pasta onde está sendo arquivada as demais classes criadas, isto é se o ambiente ultilizado for o JCreator.

Criado 9 de dezembro de 2004
Ultima resposta 13 de dez. de 2004
Respostas 8
Participantes 6