【发布时间】:2018-01-22 09:53:46
【问题描述】:
请看下面的Java类:
class A {
public void doProcess(){
System.out.println("Process from A class!");
}
}
class B extends A {
@Override
public void doProcess(){
System.out.println("Process from B class!");
}
}
如上所示,我有 2 个课程。如果我要执行以下操作(匿名类)
new B() {
@Override
public void doProcess(){
System.out.println("Process from Anonymous class");
}
}
我是在创建 B 的新子类吗?还是B的一个实例?
我知道我可以将匿名实现分配给 B 或 A。我不确定的是在创建的匿名类的实例上。更多关于 Java 所做的事情的好奇心比任何实际目的。我不知道如何让这个匿名内部类的类对象使用一些反射 API 并自己弄清楚。
【问题讨论】:
-
B..的子类
-
感谢@EpicPandaForce。您还可以帮助我如何(使用反射 API 或其他东西)发现它是 B 的子类吗?
-
为什么?它是。你写的代码就是这个意思。
-
@InfiniteLoop 您可以将它的一个实例分配给 B 类型的变量
B b = new B() { ...}。您可以检查b.getClass() != B.class以查看它不是 B 的实例。
标签: java anonymous-class