现需要重写覆盖某类中的一个方法,但该方法中实例化了其所在类中定义的某一接口。在重写该方法的时候,无法实例化那个接口,eclipse提示那个接口不可视。
请问遇到这种问题,我该如何重写类似的方法呢?class a {
interface b {
 void get();
}
c(){
 ...
 new b{
  void get(){
   ...
  };
 }
}
}
如上,我想重写a类中的c方法,那实例化b接口怎么实现呢?

解决方案 »

  1.   


    class Test {
    interface b {
    void get();
    } void c() {
    new b() {
    public void get() {
    // TODO Auto-generated method stub
    }
    };
    }
    }
      

  2.   

    少写括号,少写public,少写void,分号写错位
      

  3.   

    哦,不好意思,是我弄错了,不是实例化了接口。应该是下面的
    public class Test {
        interface B {
            void get();
        }
        
        void d(B b){
        
        }
        
        void c() {
            d(new B(){
             public void get(){
             **想修改此处的类容**
             };
            });
        }
    }
    我想重写这个类中的c()方法。要怎么做?
      

  4.   

    你这样写是不行的,你可以改改public class Test {
            interface B {
                void get();
            }
            
            void d(B b){
                
            }
            
            void c() {
                d(new B(){
                    public void get(){
                        //**想修改此处的类容**
                        dosomejob(); //use a method
                    };
                });
            }
            
            void dosomejob() {
                //copy your code **想修改此处的类容** to here, and then override dosomejob method
            }
    }
      

  5.   

    我也希望原类跟qybao写的一样,可是原来的类的代码就是直接调用了个接口,里面并没有再继续调用其他的方法了。原来的类就是这样写的void c() {
                d(new B(){
                    public void get(){
                        //**想在此处添加**
                    };
                });
            }