在调用方法时获取扩展超类的子类实例

nh_99

因此,我希望能够获得从超类调用方法时正在运行的子类的实例。例如,如果我有这个课:

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的子类)正在调用代码。

马丁·迪诺夫(Martin Dinov)

正如已经向您指出的那样,几乎没有一个很好的理由要这样做,我同意您应该改用多态但是,如果“需要”要做到这一点,或者只是想知道如何着手做这样的事情,你可以使用instanceofthis方法内:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

实例化子类时从超类调用方法

通过超类实例调用子类类的方法

在子类的方法中本地调用超类方法时,使用“ super”关键字还是使用超类实例?

Java继承:创建子类实例时如何调用超类方法?

Python-如何从子类实例调用超类的方法?

从超类调用子类方法

通过传递子类的实例来调用超类的方法,期望子类实例上的超类参数

Java:从子类获取超类的实例

在 Python 中从超类实例扩展子类实例

如何使超类方法返回子类的实例

调用超类方法而不是子类方法

NSNotificationCenter从超类或子类调用方法?

如何使子类自动调用超类方法

当子类对象存储在超类数组中时,如何调用子类方法?

超类方法获取子类变量

从子类调用基类的扩展方法

从超类或接口列表中获取子类实例

提供子类实例代替超类时出现Scala错误?

ClassCast异常:子类实现在调用超类方法时抛出异常

从Python超类运行方法时,如何知道调用它的子类的名称?

为什么从子类调用超类方法时我的值为空?

如何让子类扩展python中超类的方法

使用子类和超类引用访问实例方法

当对象是子类类型时,为什么我不能从超类调用子类中的公共方法?

使用type()创建子类时,调用超类init

如何从修饰的子类方法中调用重写的超类方法

如何从重写的子类方法调用超类的继承方法?

实例化从AwsClient子类扩展的类时出错

在扩展类中从异步方法调用超类的异步方法