黑马程序员技术交流社区
标题:
关于一个接口与内部类问题?
[打印本页]
作者:
潘廖明
时间:
2013-4-16 01:58
标题:
关于一个接口与内部类问题?
本帖最后由 潘廖明 于 2013-4-17 22:49 编辑
接口里是否能定义内部类?如果可以举个使用的场景的例子?
作者:
陈宇鹏
时间:
2013-4-16 12:02
可以 接口里的内部类是接口的成员。
是默认使用public static 修饰的,接口的内部类只能是静态内部类
但是这样定义没有任何意义,因为接口本身就是定义一个公共规范,是暴露出去给人使用的
如果在其中定义了内部类,意义何在?
作者:
黄玉昆
时间:
2013-4-16 12:34
这是可以的,最现成最简单的例子就是Map集合的内部接口Map.Entry<K,V>,如果你要定义内部类,其实是一样的到来,就像楼上说的一样。但是定义内部类还不如定义内部接口比较好,因为接口更容易扩展。
作者:
偏執旳、靑春
时间:
2013-4-16 13:01
1.首先可以定义,接口本身就是一个抽象类,定义一个类自然就是内部类
2.确实没必要这么干。接口中本来就只是一个标签,你定义一个内部类想实现什么功能?
我经过测试发现 在接口里面定义的一个类 ,然后类中的方法可以不是抽象的,也就是可以实现的
package com.itcast.ztr;
public class MainClass {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test.A a=new Test.A();
a.t();
}
}
package com.itcast.ztr;
public interface Test {
class A{
public void t(){
System.out.println("asa");
}
}
}
你可以试一试
作者:
庄生晓梦
时间:
2013-4-16 19:54
接口能够定义内部类。内部类可以直接访问外部类的成员,
但是接口中的成员都有固定的修饰符public static,接口是对外开放的方法。
所以,没有意义。
作者:
黄玉昆
时间:
2013-4-17 09:00
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
作者:
Sword
时间:
2013-4-17 10:27
学习了,不错
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2