G
Gast
Gast
hi,
ich habe hier folgendes code. die frage ist, hat das interface irgendwelche vorteile gegenüber der abstrakten klasse bezogen auf dieses beispiel?
Allgemein soll wohl abstrakte Klasse ein wenig schneller sein, denke nicht dass es hier so ausschlaggebend ist.
Es sind quasi alles abstrakte Methoden in Function, also auch da kein Grund für eine abstrakte Klasse.
Spricht sonst irgendetwas unebdingt für ein Interface und gegen eine abstrakte Klasse?
ich habe hier folgendes code. die frage ist, hat das interface irgendwelche vorteile gegenüber der abstrakten klasse bezogen auf dieses beispiel?
Code:
interface Function{
double at(double x);
Function derive();
static final Function
zero = new ConstFunction(0.0),
one = new ConstFunctuon(1.0),
minus1 = new ConstFunction(-1,0),
sin = new Function(){
public double at(double x){
return Math.sin(x);
}
public Function derive(){
return cos;
}
},
cos = new Function(){
public double at(double x){
return Math.cos(x);
}
public Function derive(){
return new MultFunction(minus1,sin);
}
};
}
public final class ConstFunction implements Function{
private double c;
public ConstFunction(double c){
this.c = c;
}
public double at(double x){
return c;
}
public Function derive(){
return zero;
}
}
public final class MultFunction implements Function{
private Function a;
private Function b;
public MultFunction(Function a, Function b){
this.a = a; this.b = b;
}
public double at(double x){
return a.at(x) + b.at(x);
}
public Function derive(){
[...]
}
}
Allgemein soll wohl abstrakte Klasse ein wenig schneller sein, denke nicht dass es hier so ausschlaggebend ist.
Es sind quasi alles abstrakte Methoden in Function, also auch da kein Grund für eine abstrakte Klasse.
Spricht sonst irgendetwas unebdingt für ein Interface und gegen eine abstrakte Klasse?