小编num*_*ger的帖子

我可以覆盖Java中的私有方法吗?

我知道我可以使用反射来调用私有方法,并获取或设置一个私有变量的值,但我要重写的方法.

public class SuperClass {

    public void printInt() {
        System.out.println("I am " + getClass() + ". The int is " + getInt());
    }

    private int getInt() {
        return 1;
    }
}

public class SubClass extends SuperClass {

    public static void main(String[] args) {
        (new SubClass()).printInt();
    }

    public int getInt() {
        return 2;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要 打印输出的main方法,但它打印出来.我听说这可以通过反思完成,但我无法弄清楚如何.如果没有反思,有没有人知道另一种方式呢?(除了保护,复制和粘贴方法之外.)如果实际覆盖私有方法是不可能的,有没有办法在它上面放置某种类型的触发器,它将调用我的子类中的方法之前或私有方法执行后?SubClass21SuperClass.getInt()printInt()SubClass

java reflection polymorphism access-modifiers

13
推荐指数
4
解决办法
3万
查看次数

标签 统计

access-modifiers ×1

java ×1

polymorphism ×1

reflection ×1