class Test
{
private String str="Hello";
private void print()
{
System.out.println(str);
}
class Inner
{
public Inner()
{
str="Hello,World!!!";
print();
}
}
}class Test2
{
public static void main(String[] args)
{
Test t=new Test();
Test.Inner i=t.new Inner();
}
}怎么样把Test类中的内部类Inner改写成为匿名内部类呢,请各位朋友帮帮忙。

解决方案 »

  1.   

    匿名内部类的两种实现方式:第一种,继承一个类,重写其方法;第二种,实现一个接口(可以是多个),实现其方法~~~~Inner类没有继承其他类也没有实现其他接口,所以不能写成匿名内部类的形式~~~~
      

  2.   

    for example
    class Test
    {
    private String str="Hello";
    private void print()
    {
    System.out.println(str);
    }
    class Inner
    {
    public Inner()
    {
    str="Hello,World!!!";
    print();
    }
    }Object o = new Object() { //这样可以生成一个没有名字的类的实例
        {System.out.println("no name class instance");}
    };
    }public class Test2
    {
    public static void main(String[] args)
    {
    Test t=new Test();
    Test.Inner i=t.new Inner() { //这样可以改写Test.Inner
        {System.out.println("I am new inner.");}
    };
    }
    }
      

  3.   

    public static void main(String[] args)
    {
    Test t=new Test();
    Test.Inner i=t.new Inner() //这样可以改写Test.Inner

        {
         System.out.println("I am new inner.");
        }
    };
    }
    以上代码中的
    Test.Inner i=t.new Inner() //这样可以改写Test.Inner

        {
         System.out.println("I am new inner.");
        }
    };
    这段代码在Test.Inner i=t.new Inner()这句的括号内,又加上了一对括号,并把打印语句写在了里面,这是什么写法,请各位朋友,帮忙解释一下。