zoukankan      html  css  js  c++  java
  • java中的匿名内部类

     

    一、使用匿名内部类内部类

           匿名内部类由于没有名字,所以它的创建方式有点儿奇怪。创建格式如下:

    new 父类构造器(参数列表)|实现接口()  
        {  
         //匿名内部类的类体部分  
        }

           在这里我们看到使用匿名内部类我们必须要继承一个父类或者实现一个接口,当然也仅能只继承一个父类或者实现一个接口。同时它也是没有class关键字,这是因为匿名内部类是直接使用new来生成一个对象的引用。当然这个引用是隐式的。

    for example:

            Queue<Integer> queue = new PriorityQueue<Integer>(10,
                    new Comparator<Integer>(){
                        public int compare(Integer i, Integer j){
                            int result = i % 2 - j % 2;
                            if (result == 0)
                                result = i - j;
                            return result;
                        }
            });

      二、注意事项

           在使用匿名内部类的过程中,我们需要注意如下几点:

          1、使用匿名内部类时,我们必须是继承一个类或者实现一个接口,但是两者不可兼得,同时也只能继承一个类或者实现一个接口。

          2、匿名内部类中是不能定义构造函数的。

          3、匿名内部类中不能存在任何的静态成员变量和静态方法。

          4、匿名内部类为局部内部类,所以局部内部类的所有限制同样对匿名内部类生效。

          5、匿名内部类不能是抽象的,它必须要实现继承的类或者实现的接口的所有抽象方法。

    参考:http://blog.csdn.net/chenssy/article/details/13170015

  • 相关阅读:
    【Web__Cookie】常规使用
    【MVC__ExceptionFilter】全局异常处理
    【 自定义友好错误页 】
    【前端__iframe】web页面框架的使用相关
    【JS__UEditor】富文本编辑器的使用
    简单五子棋,没有电脑AI
    C# 打印倒三角
    C# 抽象类
    递归算法输出数列的前N个数
    case when then else end 累加
  • 原文地址:https://www.cnblogs.com/smuxiaolei/p/7745512.html
Copyright © 2011-2022 走看看