Estou com o seguinte problema,
Tenho um programa que processa o calculo de alguns processos de engenharia.
Ocorre o seguinte.
Estou calculando um valor X e me utilizo de alguns valores retornados pela classe Y para isto coloquei a classe y no extends. Até aí tudo bém.
Mas agora preciso calcular um outro valor Z e para isto preciso me utilizar de uma outra classe que me retorna este valor.
Como eu faço isto, pois não posso mais utilizar o extends para herdar aos métodos desta classe.
E se eu precisar usar um monte de classes diferentes, não é possivel fazer isto?.
Obrigado;
[quote]
Estou calculando um valor X e me utilizo de alguns valores retornados pela classe Y para isto coloquei a classe y no extends. Até aí tudo bém. [/quote]
Não faz sentido isso. Herança só é usada se uma classe for uma versão mais especializada da outra classe.
Na verdade tu poderá utilizar-se um Design Patter chamado Factory para solucionar teu problema, tu não irá criar um classe que extende de duas classes e sim uma classe abstrata que irá conter os métodos que tu utilizas e as classes filhas que tu poderá utilizar de maneira abstrata (como a própria qualificação da superclasse diz!)…
veja um artigo em: http://www.guj.com.br/java.tutorial.artigo.137.1.guj
Caso ainda tenha dúvidas poste aí que te ajudamos !!
Caro colega Jairelton o problema é exatamente este mas vamos imaginar a seguinte situação:
Imagine que eu tenhos as classes:
public class Calculadora{
public int calculaX(){
X x = new X();
return x.fazUmCalculo()*123+567;
}
public int calculaY(){
Y y = new Y();
return y.fazOutroCalculo()-5+6*999;
}
}
public class Valores{
public int Peso(){
X x = new Peso();
return x.Peso();
}
}
Agora é o que eu não consigo;
Suponha que eu tenha uma terceira clace que fará o seguinte
Éla precisa pegar o valor Peso da Classe Valores e Processar usando o CalculaY da Classe calculadora.
A Outra dúvida é e se eu tiver outras classes por exemplo Volume, Massa como eu poderia utilizar todas elas em uma única classe.
Veja bém eu sei que isto aqui não é delphi, é Java e é isto o que eu quero aprender mas apenas para fazer um comparativo eu queria algo como se faz no delphi.
Tenho a classe Retorno
e Tenho algumas funções Caluculo,
Volume,
Massa,
Densidade
Quando eu preciso de alguma coisa que qualquer uma das funções fas eu simplismente coloco uma cláusula Uses e o nome da função que eu estou querendo usar aí eu consigo trazer os valores que ela retorna.
Talves eu não tenha conseguido explicar direito mas é isto que eu estou tentando fazer aqui no java.
No java vc vai usar import para importar as outras classes que vc quer usar, por exemplo:
import java.util.Calendar;
import java.util.Date;
public class Teste
{
Date criaUmaData()
{
return Calendar.getInstance().getTime();
}
}
Repare que eu usei dois classes de fora:
Date e Calendar, até usei um métodos da classe Calendar, mas para isso eu precisei dar import das duas classes. Eu tem que importar quando as classes que eu quero usar não esta no mesmo pacote (diretório).
No seu caso, ao invés de vc dar extends da classe que faz o outro calculo, criando uma versão especializada dessa outra classe, que por sinal tah tudo errado no seu caso, vc importa as classes que fazem os outros calculos, cria um objeto delas e usa esses objetos.
Ex:
import outroPacote.CalculoY
public class CalculoX
{
public double calculaX() {
int x = 9;
CalculoY y = new CalculoY();
return x + y.calculaY();
}
}