转自:http://www.cnblogs.com/nerxious/archive/2013/01/25/2876489.html

匿名内部类也就是没有名字的内部类

正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写

但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口

实例1:不使用匿名内部类来实现抽象方法

运行结果:eat something

可以看到,我们用Child继承了Person类,然后实现了Child的一个实例,将其向上转型为Person类的引用

但是,如果此处的Child类只使用一次,那么将其编写为独立的一个类岂不是很麻烦?

这个时候就引入了匿名内部类

实例2:匿名内部类的基本实现

运行结果:eat something

可以看到,我们直接将抽象类Person中的方法在大括号中实现了

这样便可以省略一个类的书写

并且,匿名内部类还能用于接口上

实例3:在接口上使用匿名内部类

运行结果:eat something

由上面的例子可以看出,只要一个类是抽象的或是一个接口,那么其子类中的方法都可以使用匿名内部类来实现

最常用的情况就是在多线程的实现上,因为要实现多线程必须继承Thread类或是继承Runnable接口

实例4:Thread类的匿名内部类实现

运行结果:1 2 3 4 5

实例5:Runnable接口的匿名内部类实现

运行结果:1 2 3 4 5

java中大量匿名内部类的坏处_java中的匿名内部类总结相关推荐

  1. java的对象是什么意思_Java中对象和对象引用的区别,引用、指向是什么意思

    Java的变量分为两大类:基本数据类型和引用数据类型. 其中基本类型变量有四类8种:byte short int long float double char boolean,除了8种基本数据类型变量 ...

  2. java中的case1怎么说_Java 中的 CAS 简述及原理解析

    一.CAS 是什么? CAS(Compare And Swap),比较并交换,它是一条CPU并发原语.它的功能是判断内存某个位置的值是否为预期值,如果是则更新为新的值,这个过程是原子的.1 publi ...

  3. java 内存溢出和内存泄漏_JAVA中的内存溢出和内存泄漏有很大的区别

    JAVA中的内存溢出和内存泄漏分别是什么,有什么联系和区别,我谈谈自己的理解. 内存泄漏(memory leak ):申请了内存不释放,比如100m的内存,分配了10m的内存一直不回收,那么可以用的内 ...

  4. java中的方法在哪里_Java中的本机方法是什么,应在哪里使用?

    小编典典 Java中的本机方法是什么,应在哪里使用? 一旦看到一个小例子,就很清楚了: Main.java : public class Main { public native int intMet ...

  5. java中为什么要用注解_java中的注解,真的很重要,你理解了嘛?

    这篇文章开始讲解java中的注解,在平时的开发当中我相信你或多或少的接触过注解.比如你可能都见过@override,它代表的就是一个注解.但是,为了更加清晰的去介绍注解,我还是先给出一个例子,让你能够 ...

  6. java中volatile关键字的含义_java中volatile关键字的含义

    转自:http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html 在java线程并发处理中,有一个关键字volatile的使用目前存 ...

  7. java中map如何实现遍历_Java中如何遍历Map对象的4种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  8. java中容易混淆的方法_java中容易混淆的区别

    本文会随时更新一些java中容易混淆的关键字或者知识点,如有偏见之处,望留言! final和static的差别: 1,final的英语意思"最后的",在java中修饰类,方法和变量 ...

  9. java中String类是什么_Java中字符串的学习(一)String类的概述及常见方法使用

    转载请注明出处http://www.cnblogs.com/devtrees/p/4347079.html (拓展:Api:编程语言对外给我们提供的应用程序接口.) 一.概述: 我们平时上网发帖,帖子 ...

最新文章

  1. java字符存储,在什么编码是Java字符存储在?
  2. Matlab 频域滤波处理周期噪声图像(带阻滤波器滤波)
  3. Leetcode: Sort List
  4. 重定向dup2的本质
  5. TreeView Checkbox选中
  6. C++ 操作符优先级
  7. Java集合系列---HashMap源码解析(超详细)
  8. sql timestep 秒数后6位_excel中,如何截取身份证号后6位?前4位?或者中间8位?...
  9. 世达工具编号查询_世达工具型号-名称对照表
  10. 【ACL 2019】腾讯AI Lab解读三大前沿方向及20篇入选论文
  11. 教你怎么批量修改文件后缀名
  12. Apktool反编译
  13. 解决Linux 负载过高问题过程记录
  14. 使用 iview 实现PC端生成推广海报与二维码并下载的功能,基于iview Modal 对话框 与 Carousel 走马灯组件实现
  15. 全局变量和静态变量以及内存堆栈的关系
  16. 1299: 【二分查找】找球号
  17. String数组拆分
  18. this hits shit!
  19. Java基础练习题day2
  20. 如何通过Git客户端从Gitlab下载代码

热门文章

  1. $ajax({}).done 和 $ajax({}) success 区别
  2. 跟老齐学python Django实战第一章错误解决
  3. oracle+导入emp,Oracle数据库导入导出emp文件
  4. 【测试】身份证的前世今生
  5. 史上最全的前端开发面试题(含详细答案)
  6. Blog建设好了,好好看φ(゜▽゜*)♪
  7. kendo Grid json解析的问题
  8. Oracle中的伪列
  9. Windows下断言的类型及实现
  10. 在存储过程中编写正确的事务处理代码