Eu tenho uma dúvida, como por exemplo eu faria para criar um método somador que recebe dois valores numéricos e faz a soma destes. Usando o conceito de classes abstratas, e o método receberá dois valores de um tipo abstrato e executa a soma destes. os valores terão que ser tipo Float, Integer, Decimal.
Eu faria uma classe abstrata soma e faria essas coisas?
entao fiz assim: abstract Number somar(Number a, Number b);
oq vc mandou
mas se eu quiser trocar o number por numero, prq dá erro?
staroski
Sem ver seu código, não dá pra adivinhar o que você fez.
Mas se você quiser mudar a assinatura de Number para double, vai ter que mudar a assinatura também na classe abstrata e não somente na classe concreta.
Mamoru_Chiba
eu só fiz isso por enquanto, na verdade tentei uma coisa e nem mandei aqui(apaguei ela)
eu agora fiz apenas a classe abastrac
public abstract double calculaA();
public abstract double calculaB();
Dai eu faria uma outra Classe A como Float?
staroski
Acho que você está confundindo abstração com sobrecarga de métodos.
Mamoru_Chiba
qual a diferenca de ```
abstract Number somar(Number a, Number b);
voidinput(){System.out.print("Entre com dois numers: ");a=sc.nextInt();b=sc.nextInt();}voidadd(){s=a+b;}voidresultado(){System.out.print("Soma dos dois números:"+s);}publicstaticvoidmain(Stringargs[]){Mainst=newMain();st.input();st.add();st.resultado();}
}
ele dá certo, rida, sai o resultado, mas é o que pede?
staroski
Não sei, você não postou o enunciado.
Mamoru_Chiba
ah pergunta meio q era, mas aqui
Objetivo: criar um método somador que recebe dois valores numéricos e faz a soma destes. Usando o conceito de classes abstratas, este método receberá dois valores de um tipo abstrato e executa a soma destes.
Tipos aceitos: os valores numéricos recebidos podem ser de qualquer tipo, por exemplo: Float, Integer, Decimal.
staroski1 like
Aqui já dá pra dizer que você errou.
O exercício pede para criar um método que receba dois valores.
Você criou três métodos que não recebem nada.
Aqui não está claro se os parâmetros precisam ser de um tipo de dado abstrato ou se é um tipo abstrato quem vai passar os parâmetros.
Tem que esclarecer isso.
Aqui está dizendo que você pode implementar utilizando qualquer um desses tipos ou o método precisa funcionar com todos esses tipos?
Também precisa esclarecer isso.
davidbuzatto1 like
O grande problema é o exercício na minha opinião… Não sei se isso é exercício de livro, curso técnico ou faculdade, mas esse tipo de exercício, dado dessa forma, mais confunde do que ensina. Eu acho meio bizarro dar um exercício de herança envolvendo operações que a linguagem já suporta a não ser se fosse algo envolvendo tipos que o usuário vai criar, mas mesmo assim, algo mais próximo da realidade, como um exemplo que gosto muito envolvendo formas geométricas, na minha opinião, é algo muito mais construtivo. Não nos esqueçamos também do famigerado exemplo do Animal, Gato (miau) e Cachorro (auau) que tbm acho uma verdadeira b**ta.
Mamoru_Chiba
Acho que pode ser ser qualquer um, mas é bom testar
Aqui não está claro se os parâmetros precisam ser de um tipo de dado abstrato ou se é um tipo abstrato quem vai passar os parâmetros.// sobre isso, eu nem sei, perguntei minha duvida ao professor e ele só visualizou e nem respondeu
Mamoru_Chiba
é de curso técnico, estudo em uma federal, é como ficaram meses sem dar nada, e voltaram em 2020 lá para o final do ano, dai pararam e voltaram a uns meses, e usemos um de forma geo como exemplo, tentei pegar a base para esse exercicio, e de animais nem cheguei a usar com esse professor