黑马程序员技术交流社区

标题: 关于内部类,内部接口。【已解决】 [打印本页]

作者: 马林贺    时间: 2012-6-11 16:44
标题: 关于内部类,内部接口。【已解决】
本帖最后由 马林贺 于 2012-6-12 11:19 编辑

     在定义内部类,内部接口的时候有没有什么限制?

    比如说 可以再类的里面定义内部类,那可不可以定义内部接口。

     谁有比较具体的总结,分享一下。
作者: 赵兵锋    时间: 2012-6-11 17:10
  1. public class Main implements T.TIN{//实现了一个内部接口
  2.         public static void main(String[] args) {
  3.                 new T().new TI().f();
  4.                 new Main().f();
  5.         }
  6.         @Override
  7.         public void f() {
  8.                 System.out.println("I'm in a function which in Class Main");
  9.         }
  10. }
  11. class T{
  12.         class TI implements TIN{//内部类,实现了一个内部接口
  13.                 @Override
  14.                 public void f() {
  15.                         System.out.println("I'm in a function which in a Inner Class of Class T");
  16.                 }
  17.                
  18.         }
  19.         interface TIN{//内部接口,没有定义成私有的,外部可访问,即可实现此接口
  20.                 void f();
  21.         }
  22. }
  23. 输出:
  24. I'm in a function which in a Inner Class of Class T
  25. I'm in a function which in Class Main
复制代码

作者: 付信榕    时间: 2012-6-11 17:12
/*可以的。
但内部接口只能定义在外部类或接口下,不能定义在内部抽象类或内部接口下。
内部抽象类的多重实现,即在内部抽象类或内部接口下再定义二级内部抽象类,甚至多级。
举例:*/


public class Test {
        public interface Sort {
                public void sort(int[] arr);

        }
        public static void  main(String[] args){

                System.out.println("hello world");
        }
作者: sbeeqnui1987    时间: 2012-6-11 18:30
当类与接口(或者是接口与接口)发生方法命名冲突的时候,此时必须使用内部类来实现。
这是唯一一种必须使用内部类的情况。
用接口不能完全地实现多继承,用接口配合内部类才能实现真正的多继承。
匿名内部类:
1.匿名内部类是一种特殊的局部内部类,它是通过匿名类实现接口。
2.不同的是他是用一种隐含的方式实现一个接口或继承一个类,而且他只需要一个对象
3.在继承这个类时,根本就没有打算添加任何方法。
4.匿名内部类大部分情况都是为了实现接口的回调。
内部接口:
在一个类中也可以定义内部接口
在接口中可以定义静态内部类,此时静态内部类位于接口的命名空间中。
在接口中还可以定义接口,这种接口默认也是public static 的,如Map.Entry就是这种接口
作者: 黑马-王言龙    时间: 2012-6-11 19:31
等级太低,不知道还有个“内部接口”,求解释:(




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2