我知道我可以使用反射来调用私有方法,并获取或设置私有变量的值,但我想覆盖一个方法。
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;
}
}
我想要 打印出来的main
方法,但它打印出来。我听说这可以通过反思来完成,但我不知道怎么做。如果不是反射,有没有人知道另一种方法?(除了进行保护,或将方法复制并粘贴到.)如果实际上覆盖私有方法是不可能的,有没有办法在它上面放置某种触发器,它将在我的子类中调用一个方法之前或私有方法执行后?SubClass
2
1
SuperClass.getInt()
printInt()
SubClass