Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)
答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现上面是网上的一道常见的笔试题里面的。
自己学了这么长时间java了可是回过头来对这个问题还是很陌生;不理解;大家可不可以举几个例子讨论一下啊;

解决方案 »

  1.   

    匿名内部类作为GUI绘制的事件处理就是一个例子。
    通过使用匿名内部类,我觉得可以使代码更整洁,易看。
      

  2.   

    谁说匿名内部类不能继承其他类的?只能说那个面试官自己没搞懂这个问题。class Contents {
    }public class Parcel6 {
     public Contents cont() {
       return new Contents() {
         private int i=11;
         public int value() { return i;}
       };
     }
     public static void main(String[] args) {
       Parcel6 p=new Parcel6();
       Contents c=p.cont();
     }
    }
      

  3.   

    完全可以。
    java编程思想上有现成的例子。
      

  4.   

    向你推荐一本好书-----------------------《java编程思想》
      

  5.   

    《thinking in java》上面的例子:
    abstract class Base{
           public Base(int i){
                System.out.println("Base constructor,i="+i);
           }
           public abstract void f();
    }public class AnonymousConstructor{
            public static Base getBase(int i){
              return new Base(i){
                   { System.out.println("Inside instance initializer");}
                   public void f(){
                      System.out.println("In anonymous f()");
                     }
                };
           }
           public static void main(String[] args){
               Base base=getBase(47);
               base.f();
           }
    }
      

  6.   

    楼主你好!
    我将内部类的知识做一个简单的小结:也许对你有帮助
    内部类分为四类:
    1、静态内部类
    2、成员内部类
    3、局部内部类
    4、匿名内部类
    而你问到的匿名内部类有以下几个(6个)特点:(4无2有)
    4无:
    1、无class关键字
    2、无类名
    3、无构造
    4、无继承关键字,但是有继承关系。
    2有:
    5、有类体(即类体花括号)
    6、有父类或父接口名写一个简单的例子:
    public class Outer{
      public Outer(int i){  //constructor
        System.out.println("another constructor");
      }
      public Outer(){  //constructor
        System.out.println("default constructor");
      }
      public void method(){  
        System.out.println("from Outer");
      }
      public static void main(String[] args){  //main method
        new Outer().method; // invoke the outer method
        Outer outer = new Outer(){  //anonymous inner class
          public void method(){   //override method
            System.out.println("from inner anonymous class");
          }
        };//end of inner class body
        out.method();  
      }
    }
    /**
    *通过调用method方法,从结果可以看到外部类的method方法被重写了,也可以清楚的体现匿 *名内部类4有2无的特点
    */