因此,我希望能够获取在调用父类(super class)中的方法时正在运行的子类的实例。例如,如果我有这样的类(class):
public class A {
public void aMethod() {
//Here is where I want to see if class B is calling the code
}
}
public class B extends A {
}
public class C {
B b = new B();
b.aMethod();
}
并且,就像评论所说,我想检查,在 aMethod 中,类 B(类 A 的子类)是否正在调用代码。
最佳答案
正如已经向您指出的那样,几乎没有充分的理由这样做,并且我同意您应该使用多态性。但是,如果您“需要”执行此操作或只是想知道如何执行此类操作,则可以在方法内部的 this
上使用 instanceof
:
class A {
public void aMethod() {
if (this instanceof B) {
System.out.println("I'm a B!");
}
}
}
public class B extends A {
public static void main(String[] args) {
B b = new B();
b.aMethod();
}
}
关于java - 调用方法时获取扩展父类(super class)的子类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21418122/