以下のようにソースを書いたら
["Cone は abstract でなく、SolidObject 内のabstract メソッド solidobject()
をオーバーライドしません。"]とコンパイルエラーが出るのですが、abstractクラスを
拡張したクラス内での、オーバーライドの仕方が悪いのでしょうか、どなたか教えてください。

import static java.lang.Math.*;

interface LuminousObject {
public void lightoff(boolean b);
public void lighton(boolean b);
}
abstract class SolidObject {
abstract double solidobject();
}

class Cone extends SolidObject {
double solidobject(double x1, double x2){
return (4 * PI * pow( abs(x1 - x2), 3) / 3);
}
}
class Cube extends SolidObject {
double solidobject(double x1, double x2, double h){
return (PI * pow( abs(x1 - x2), 2) * h / 3);
}
}
以下略