我对 Java 相当陌生,我正在编写一个程序,该程序有两个使用相同父方法的子类,并且我想找到一种方法来跟踪哪个子类调用该方法。
示例:
public class Parent(){
public static int ChildOneUses, ChildTwoUses;
public void Example(){
/* code */
if(/*ChildOne called the method*/)
ChildOneUses++;
else if(/*ChildTwo called the method*/)
ChildTwoUses++;
}
}
public class ChildOne extends Parent(){
/* code */
}
public class ChildTwo extends Parent(){
/* code */
}
public static void main(String[] args){
ChildOne ChildOne = new ChildOne();
ChildTwo ChildTwo = new ChildTwo();
ChildOne.Example();
ChildTwo.Example();
ChildTwo.Example();
}
/* If this code were to run, ChildOneUses would equal 1 and ChildTwoUses would equal 2 */
除了将父方法移动到每个子类以自行跟踪它们之外,我不确定这个问题是否有答案。
最佳答案
您可以在父类中设置 childType。
public class Parent(){
public static int childOneUses, childTwoUses;
public static int childType;
public Parent(int childType) {
this.childType = childType;
}
public void example(){
if(childType == 1) {
childOneUses++;
}
else if(childType == 2) {
childTwoUses++;
}
}
}
public class ChildOne extends Parent(){
public ChildOne() {
super(1);
}
}
public class ChildTwo extends Parent(){
public ChildTwo() {
super(2);
}
}
public static void main(String[] args){
ChildOne childOne = new ChildOne();
ChildTwo childTwo = new ChildTwo();
childOne.example();
childTwo.example();
childTwo.example();
}
关于java - 父方法可以检查哪个子方法调用了它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41307876/