定义后,我尝试在其中使用匿名类的实例,但是IDE给出了多个错误。我评论了下面的问题。这是使用匿名类的一种完全错误的方法,还是因为我写错了什么?提前致谢!

  zoo = new ArrayList <AbstractCat>();
  AbstractCat cat = new AbstractCat (){//trying to create an anonymous class and add the instance cat to the ArrayList
          zoo.add(this); //this line has multiple errors, I tried add(cat) but didn't work
          .....
          // override the methods in AbstractCat

最佳答案

如果我以不同的方式阅读您的问题,似乎您正在尝试使用已创建的AbstractCat实例,并将其添加到您的zoo列表中。

好吧...您无法以您试图从匿名类中尝试的方式进行操作。您也许可以,但是我强烈不建议这样做。

相反,将您持有的匿名类的实例放到列表中会更简单。

AbstractCat cat = new AbstractCat() {
    // impl
}

zoo.add(cat);

07-26 07:10