• 匿名内部类


    所谓匿名类就是没有类名的类;

    下面代码演示一下匿名内部类的使用

    package Stephen.Class.chapter7;
    //匿名内部类测试
    public class AnonymousInnerClassTest {
        public static void main(String[] args) {
            DustMan man = new DustMan();
            man.cleanWithBroom();
            man.cleanWithDustCollector();
        }
    }
    //清洁工
    class DustMan{
        //使用扫帚清洁
        public void cleanWithBroom(){
            Utility util = new Utility(){//匿名内部类的建立
                public void clean(){
                    System.out.println("正在使用打扫清洁路面");
                }
            };
            util.clean();
        }
        //使用吸尘器清洁
        public void cleanWithDustCollector(){
            ElectronicUtil util = new ElectronicUtil(){
                public void clean(){
                    System.out.println("正在使用吸尘器清洁路面");
                }
            };
            util.clean();
        }
    }
    //设备
    interface Utility{
        public void clean();
    }
    //电子设备
    class ElectronicUtil{
        public void clean(){
            System.out.println("使用电子设备清洁");
        }
    }

    运行结果:

    请注意如下的代码:

    Utility util = new Utility(){//匿名内部类的建立
        public void clean(){
            System.out.println("正在使用打扫清洁路面");
        }
    };

    这段代码相当的器官,看上去很像是建立一个类型为Utility的对象,但是接口Utility并不能被实例化,而且在new Utility()后面又接着以花括号包围起来的代码,实际上这里建立了一个匿名内部类,这个类实现了Utility接口并且覆写了Utility接口的clean方法,其作用等同于以下的代码

    class AnonymousInnerClass implements Utility{
        public void clean(){
            System.out.println("正在使用扫帚清洁路面");
        }
    }
    AnonymousInnerClass util = new AnonymousInnerClass();

    由于建立这个类的时候没有类名,所以称为匿名内部类。

  • 相关阅读:
    使用react native制作的一款网络音乐播放器
    swift3.0 简单直播和简单网络音乐播放器
    深入理解iOS开发中的BitCode功能
    react native 之 事件监听 和 回调函数
    swift简单处理调用高清大图导致内存暴涨的情况
    swift3.0 自定义键盘
    iOS原生和React-Native之间的交互2
    react native 之 获取键盘高度
    React Native项目集成iOS原生模块
    架构篇 | 带你轻松玩转 LAMP 网站架构平台(一)
  • 原文地址:https://www.cnblogs.com/lidaojian/p/2563330.html
Copyright © 2020-2023  润新知