匿名类的对象类型是什么

时间:2018-01-22 09:53:46

标签: java anonymous-class

请查看以下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并自己解决。

1 个答案:

答案 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类所在的包。