我可以在Java中重写私有方法吗?
2022-09-03 16:40:33
我知道我可以使用反射来调用私有方法,并获取或设置私有变量的值,但我想重写一个方法。
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