小弟知道类可以实现接口,但是不知道类中是否可以定义接口,别的类中如何使用?
下面代码是否有问题:
class A {
    public interface callback {
        void setState();
    }    private callback mCallback = null;
    void setCallback(callback cb) {
        mCallback = cb;
    }    public void performClick() {
        if (mCallback != null) {
            mCallback.setState();
        }
    }
    
    // other code 
}class B implements A.callback {
    public void setState() {
        // do something
    }
}请问下上面的类B是否可以实现A中定义的接口?
如果可以实现,为什么?
如果A中定义了非静态内部类,B中要访问的话,只有通过A的实例才可以访问
小弟不知道为什么可以直接访问A中的接口呢?

解决方案 »

  1.   

    不是很清楚,有内部类,没听说过有内部接口。楼主可以在IDE中试一下。
      

  2.   

    可以实现,因为是public的
    内部接口缺省的是static的
      

  3.   

    可以定义内部接口,相当于内部类一样。但是应该不像二楼说的缺省是static,需要自己指定吧
      

  4.   

    错,指定和不指定static是一样的,内部接口和内部类的区别。可以通过javap反编译代码来查看
      

  5.   

    类里面定义接口,一般没方法,大多数情况都是只定义一些常量。缺省是static的,外部类可以调用该接口。
      

  6.   

    当然可以了,在 java.security.KeyStore 类中有好几个这样的接口。
      

  7.   

    可以,内部类,内部接口...有兴趣看看 Thinking in Java,有非常清楚的说明。