请查看以下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并自己解决。
答案 0 :(得分:6)
您正在创建类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类所在的包。