• 匿名内部类


    一.匿名内部类适合创建那种只需要一次使用的类(命令模式)

         (1)定义匿名内部类的格式:

            new   实现接口( )    |父类构造器(实参列表)

            {   

                      //匿名内部类的实体部分

             }

        

          (2)匿名内部类的规则

               1.匿名内部类不能是抽象类,因为系统在创建匿名内部类时,会立即创建匿名内部类的对象.

                2.匿名内部类不能定义构造器.由于匿名内部类没有类名,所以无法定义构造器.但匿名内部类可以定义初始化块

           温馨小提示:匿名内部类必须继承一个父类或实现一个接口,但最多只能继承一个父类或接口

    二.匿名内部类的两种形式

           方式一:隐式

    温馨小提示:(1)当通过实现接口来创建匿名内部类时,匿名内部类只有隐式的无参数构造器,故new后面不能传入参数值(接口不包含构造器)1

                           (2)new Device("电子显示器")   -->public void test(Device d)  -->Device d=new Device ();


    方式二:显示

       温馨小提示:如果局部变量被匿名内部类访问,那么该局部变量相当于使用了final修饰,系统会默认加上final修饰符,此时若再修改age值,报错

             interface A

            { 

                 void test();

                }

    public class Atest{

           public static void main(String[] args) {

                int   age=19;

                 A a=new A(){

                    public   void test(){

                           System.Out.Println(age);

        }

                         };

    }

    }     

  • 相关阅读:
    使用淘宝Str2varlist与str2numlist 代替 in/exist ,提升性能(Oracle)
    由浅入深理解索引的实现
    你知道数据库索引的工作原理吗?
    深入理解数据库磁盘存储(Disk Storage)
    如何解析oracle执行计划
    Beyond Compare 4 最新中文版 注册码 key
    并发和并行的区别
    代码复用的规则
    Some Java exceptions, messages and errors.
    菜鸟学SSH(十六)——Struts2内部是如何工作的
  • 原文地址:https://www.cnblogs.com/zjm1999/p/9709959.html
Copyright © 2020-2023  润新知