因此,我希望能够获得从超类调用方法时正在运行的子类的实例。例如,如果我有这个课:
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的子类)正在调用代码。
正如已经向您指出的那样,几乎没有一个很好的理由要这样做,我同意您应该改用多态。但是,如果“需要”要做到这一点,或者只是想知道如何着手做这样的事情,你可以使用instanceof
的this
方法内:
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();
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句