Pessoal, criei a seguinte classe:
package metodositerativos;
public abstract class calculaRaizes {
protected double tolerancia;//armazena a precisão desejada (ex.: 0,001)
protected double posInicial;//intervalo inicial Ri
protected double posFinal;//intervalo final Si
protected double raiz;
protected int num_exercicio;
protected int contador;
//método construtor
public calculaRaizes(double tol,double inicio, double fim, int num) {
posInicial = inicio;
posFinal = fim;
this.contador = 0;
this.tolerancia = tol;
this.num_exercicio = num;
}
abstract void encontraRaizFuncao();
public void calcula(){
encontraRaizFuncao();
}
public int getContador(){
return this.contador;
}
public double getResultado(){
return ((posInicial+posFinal)/2);
}
}
Depois, especializei assim:
package metodositerativos;
public class bissecao extends calculaRaizes{
bissecao(double tol,double inicio, double fim, int num){
super(tol,inicio,fim,num);
}
@Override
void encontraRaizFuncao() {
double temp3=0;
do{
raiz = (posInicial+posFinal )/2;
switch(num_exercicio){
case 1:
temp3 = (Math.pow(Math.E,(-(raiz*raiz)))-(Math.cos(raiz)));
break;
case 2:
temp3 = raiz+Math.log(raiz);
break;
}
if(temp3<0){
posInicial = raiz;}
else{
posFinal = raiz;}
contador++;
}while(posFinal-posInicial>this.tolerancia);
}
}
Porém estou em dúvida quanto a esta parte:
bissecao(double tol,double inicio, double fim, int num){ super(tol,inicio,fim,num); }Não bastaria apenas um
super();
Do jeito que fiz criei um método construtor na classe filha e voltei a invocar o construtor da classe pai... gente me dá uma dica, que me enrolei todo aqui!!!