zoukankan      html  css  js  c++  java
  • Java——匿名内部类

    
    /*

     * 匿名内部类,  就是内部类的简写形式。

     * 

     *  必须有前提:

     *  内部类必须继承或者实现一个外部类或者接口。

     * 匿名内部类其实就是一个子类对象。

     * 

     * 格式:new 父类or接口名 {}

     */

    interface Inter

    {

    void show1();

    void show2();

    }


    class Outer1

    {

    public void method()

    {

    /*

     * 通常的使用场景之一:

     *  当函数参数是接口类型时,而且接口中的方法不超过3个

     *  可以使用匿名内部类作为实际参数进行传递。

     */

    Inter inter = new Inter()

    {

    @Override

    public void show1()

    {

    // TODO Auto-generated method stub

    System.out.println("实现show1()");

    }

    @Override

    public void show2()

    {

    // TODO Auto-generated method stub

    System.out.println("实现show2()");

    }

    };

    /*

     * 编译看左边

     * 运行看右边

     */

    inter.show1();

    inter.show2();

        }

    }


    class Outer2

    {

    public void show3(Inter inter)

    {

    inter.show1();

    inter.show2();

    }

    //调用show3()函数时   向里边传递一个匿名内部类     就是  不想再去定义一个类 然后 去继承这个借口

    public void show4()

    {

    show3

    new Inter()

    {

    @Override

    public void show1()

    {

    // TODO Auto-generated method stub

    }

    @Override

    public void show2()

    {

    // TODO Auto-generated method stub

    }

    }

        );

        }

    }


    //注意事项***********************************

    class Outer3

    {

        void method() 

    {

    Object obj = new Object()

    {

    public void show()

    {

        System.out.println("内部类的函数");

    }

    };

    obj.show();//错误使用       ----------以为匿名内部类这个子类对象被转成为了Object类型

    //这样就不能在使用子类特有的 方法了。

    }

    }


    练习题目 

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    TCP和UDP的最完整的区别
    kafka重置到最新offset偏移量
    MYSQL中IN,INSTR,FIND_IN_SET函数效率比较
    本地不安装ORACLE,用PLSQL访问远程数据库
    MySQL中的DEFINER与SQL SECURITY
    Centos6.8 安装tomcat8.5.11
    动态代理模式
    linux下mysql允许远程连接
    全面理解Java中的String数据类型
    Spring中获取web项目的根目录
  • 原文地址:https://www.cnblogs.com/blogs-chao/p/4764929.html
Copyright © 2011-2022 走看看