java 从实现的对象上调用父对象的方法 class

java call method from parent on object from implemented class

我相信这很容易。我有一个名为 vInteger 的 java class,它扩展了 class Integer(仅包含 int 值、构造函数、getter ) 并实施 class Comparing。那个有一个抽象方法 compare(Comparing obj);,我在 class vInteger 中实现了它。但是,我无法从 Integer class 调用 getter 来获取 int 值。 这里有什么问题? :)

谢谢

如果您看到整数 class 那么它是

public final class Integer  extends Number implements Comparable<Integer>

你不能扩展 class 因为它是最终的

我同意Mukesh Kumar

你能试试下面的代码吗?

public class VInteger extends Number implements Comparable<Integer> {

我假设您指的是自定义 Integer class(这不是个好主意,顺便说一句,因为它会隐藏 java.lang.Integer,所以重命名会更安全它)。

现在,您的 class 看起来像这样(根据您的描述):

public class vInteger extends Integer implements Comparing
{
    ...

    public int compare(Comparing obj)
    {
        // here you can access this.getIntValue() (the getter of your Integer class)
        // however, obj.getIntValue() wouldn't work, since `obj` can be of any
        // class that implements `Comparing`. It doesn't have to be a sub-class of
        // your Integer class. In order to access the int value of `obj`, you must
        // first test if it's actually an Integer and if so, cast it to Integer
        if (obj instanceof Integer) {
            Integer oint = (Integer) obj;
            // now you can do something with oint.getIntValue()
        }
    }

    ...
}

P.S.,更好的解决方案是使用通用比较接口:

public interface Comparing<T>
{
    public int compare (T obj);
}

public class vInteger extends Integer implements Comparing<vInteger>
{
    public int compare (vInteger obj)
    {
        // now you can access obj.getIntValue() without any casting
    }
}