package m;
public abstract class A {}
package m;public abstract class B implements java.io.Serializable {
public abstract double evaluate(A a);
}这段代码中的evaluate算什么呢?越看越迷茫了,希望各位指导一下!
public abstract class A {}
package m;public abstract class B implements java.io.Serializable {
public abstract double evaluate(A a);
}这段代码中的evaluate算什么呢?越看越迷茫了,希望各位指导一下!
Serializable没有方法,也没有字段,只是一个标识接口。evaluate是自己定义的一个抽象方法。所以名字可以随便起,比如叫getValue也可以。
public abstract class A {
int i;
public double evaluate(B b) {
return b.evaluate(this);
}
}
package m; public abstract class B implements java.io.Serializable {
public abstract double evaluate(A a);
}
这样写就清楚了,为什么A类里能调用B类里的没有具体方法的函数还能返回一个值?这个值是怎么得到的?
return b.evaluate(this);
}
这个方法的参数b,指明是B类.那就要这个b是一个B类的子类,而这个子类实现了抽象类B.