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

  • 相关阅读:
    Kafka学习笔记(五、Kafka偏移量)
    web-备份是个好习惯
    web-Web5
    web-web4
    web-flag就在index里
    C++日期类、时间类、日期时间类的设计
    蒙提霍尔问题简单粗暴的理解掉
    sql分组操作符与聚集函数
    sql增删改
    sql简单查询
  • 原文地址:https://www.cnblogs.com/smuxiaolei/p/7745512.html
Copyright © 2011-2022 走看看