解决方案 »

  1.   

    问题1.new Test(){.......},把new关键字后面的代码看成是Test接口的一个实现类就好理解了,new的是Test接口实现类的一个对象。刚学习接口的话,是有点难理解,用过了也就习惯了,到时候就不会纠结这个了的。
    问题2.没有看太明白问题。new Test(){.......},这个肯定是要在 { }里面实现的,这是匿名类,你可以去看一下编译的class文件,这个匿名类会有一个单独的class文件,文件名大概是Test$什么什么.class。上面的代码中,Demo是不需要实现接口Test的,这里Demo根本就不是Test的实现类。
    问题3.是可以调用的,但是为什么不用单例,那就是设计上的事情了。
    问题4.也没看太明白,要不你把那代码也贴出来看看
      

  2.   

    在下面这个类implements接口,上面调用直接new类名,应该可以,但是只能有一个public的类
      

  3.   

    那如果不用内部类该怎么写class Demo{
        public satic void main(String[] args){
    TestImpl t = new TestImpl();
    new Demo().show(t);
        }
        void show(Test t){
    t.func();
        }}public class TestImpl implements Test{
    public void func(){}
    }