A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马林贺 中级黑马   /  2012-6-11 16:44  /  1573 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 马林贺 于 2012-6-12 11:19 编辑

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

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

     谁有比较具体的总结,分享一下。

4 个回复

倒序浏览
  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
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
/*可以的。
但内部接口只能定义在外部类或接口下,不能定义在内部抽象类或内部接口下。
内部抽象类的多重实现,即在内部抽象类或内部接口下再定义二级内部抽象类,甚至多级。
举例:*/


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

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

                System.out.println("hello world");
        }

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

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