そこで、次のようにTestという名前の単純なクラスを作成しました。
import prog.utili.IntegerB;
//It's a custom class
class Test
{
public static void main(String[] args)
{
IntegerB a = new IntegerB(1);
IntegerB b = new IntegerB(2);
IntegerB sum = a.plus(b);
System.out.println(sum);
}
}
継承を使って練習したかったので、2つのカスタムクラスを作成しました。分数..。
package prog.utili;
public class Fraction
{
private int num;
private int den;
public Fraction(int x, int y)
{
[...]
}
public Fraction(int x)
{
this(x, 1);
}
public Fraction plus(Fraction f)
{
int n = this.num * f.den + this.den * f.num;
int d = this.den * f.den;
return new Fraction(n, d);
}
[...]
}
...およびIntegerB:
package prog.utili;
public class IntegerB extends Fraction
{
public IntegerB(int num)
{
super(num);
}
public IntegerB plus(IntegerB other)
{
return (IntegerB)this.plus(other);
}
}
問題は、同じエラーが発生し続けることです。
at prog.utili.IntegerB.plus(IntegerB.java:11)
IntegerBの最後のメソッドを削除し、Test.javaの9行目を次のように置き換えるだけで、問題を簡単に解決できることはわかっています。
IntegerB sum = (IntegerB)a.plus(b)
しかし、私は絶対に「plus」メソッドよりも継承ルールを使用してそれを実行したいと思います。