请看下面的 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
的匿名子类的实例。
B b = new B() {
@Override
public void doProcess(){
System.out.println("Process from Anonymous class");
}
}
System.out.println (b.getClass ().getSuperclass ());
这将打印
class some.package.B
其中some.package
是类B所在的包。
关于java - 匿名类的对象类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48378724/