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

vinuslong 2011-06-11 04:39:14
小弟知道类可以实现接口,但是不知道类中是否可以定义接口,别的类中如何使用?
下面代码是否有问题:
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中的接口呢?
...全文
775 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mybeautiful 2011-06-13
  • 打赏
  • 举报
回复
可以,内部类,内部接口...

有兴趣看看 Thinking in Java,有非常清楚的说明。
gyno007 2011-06-12
  • 打赏
  • 举报
回复
内部接口,学习了!!
alfusen_xiong 2011-06-12
  • 打赏
  • 举报
回复
类里面定义接口,一般没方法,大多数情况都是只定义一些常量。缺省是static的,外部类可以调用该接口。
chenchenyangll 2011-06-12
  • 打赏
  • 举报
回复
学习内部类 一直不明白它干什么的
  • 打赏
  • 举报
回复
当然可以了,在 java.security.KeyStore 类中有好几个这样的接口。
Spring源码解析 2011-06-11
  • 打赏
  • 举报
回复
自己动手试下
TKD03072010 2011-06-11
  • 打赏
  • 举报
回复
可以
楼主试试就知道了
qybao 2011-06-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 micsolaris 的回复:]
可以定义内部接口,相当于内部类一样。但是应该不像二楼说的缺省是static,需要自己指定吧
[/Quote]
错,指定和不指定static是一样的,内部接口和内部类的区别。可以通过javap反编译代码来查看
micsolaris 2011-06-11
  • 打赏
  • 举报
回复
可以定义内部接口,相当于内部类一样。但是应该不像二楼说的缺省是static,需要自己指定吧
qybao 2011-06-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 vinuslong 的回复:]
请问下上面的类B是否可以实现A中定义的接口?
如果可以实现,为什么?
如果A中定义了非静态内部类,B中要访问的话,只有通过A的实例才可以访问
小弟不知道为什么可以直接访问A中的接口呢?
[/Quote]
可以实现,因为是public的
内部接口缺省的是static的
降龙 2011-06-11
  • 打赏
  • 举报
回复
不是很清楚,有内部类,没听说过有内部接口。。。。楼主可以在IDE中试一下。。。。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧