gpt4 book ai didi

java - 调用方法时获取扩展父类(super class)的子类实例

转载 作者:行者123 更新时间:2023-11-30 06:20:43 27 4
gpt4 key购买 nike

因此,我希望能够在调用父类(super 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com