Java匿名内部类的用法

先创建一个父类,在new一个对象时,重写父类的方法,这个匿名内部类怎么报错了,还是匿名内部类只能重写接口的方法,不能这样用?图片

Java匿名内部类或者继承自某类,或者继承自某接口 (题目中outer即继承OutI接口)。

需要保证 Pa类有定义,且也定义了eat方法,然后才能如图中代码这样使用。

示例如下:

public class AnonymousClassDemo
{
  public static void main(String[] args)
  {
    Dog dog = new Dog() {  // anonymous class body closes here,dog contains an object of anonymous subclass of Dog.
      public void someDog ()
      {
        System.out.println("Anonymous Dog");
      }         
    }; 

    dog.someDog();
  }
}

class Dog
{
  public void someDog()
  {
    System.out.println("Classic Dog");
  }
}

OutI接口有定义,且定义了show方法,所以out类就没报错。