【新手上路】类中可以定义接口吗?

小弟知道类可以实现接口,但是不知道类中是否可以定义接口,别的类中如何使用?
下面代码是否有问题:
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中的接口呢?

作者: vinuslong   发布时间: 2011-06-11

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

作者: wuxianglong   发布时间: 2011-06-11

引用楼主 vinuslong 的回复:
请问下上面的类B是否可以实现A中定义的接口?
如果可以实现,为什么?
如果A中定义了非静态内部类,B中要访问的话,只有通过A的实例才可以访问
小弟不知道为什么可以直接访问A中的接口呢?

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

作者: qybao   发布时间: 2011-06-11