java中大量匿名内部类的坏处_java中的匿名内部类总结
转自: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中的匿名内部类总结相关推荐
- java的对象是什么意思_Java中对象和对象引用的区别,引用、指向是什么意思
Java的变量分为两大类:基本数据类型和引用数据类型. 其中基本类型变量有四类8种:byte short int long float double char boolean,除了8种基本数据类型变量 ...
- java中的case1怎么说_Java 中的 CAS 简述及原理解析
一.CAS 是什么? CAS(Compare And Swap),比较并交换,它是一条CPU并发原语.它的功能是判断内存某个位置的值是否为预期值,如果是则更新为新的值,这个过程是原子的.1 publi ...
- java 内存溢出和内存泄漏_JAVA中的内存溢出和内存泄漏有很大的区别
JAVA中的内存溢出和内存泄漏分别是什么,有什么联系和区别,我谈谈自己的理解. 内存泄漏(memory leak ):申请了内存不释放,比如100m的内存,分配了10m的内存一直不回收,那么可以用的内 ...
- java中的方法在哪里_Java中的本机方法是什么,应在哪里使用?
小编典典 Java中的本机方法是什么,应在哪里使用? 一旦看到一个小例子,就很清楚了: Main.java : public class Main { public native int intMet ...
- java中为什么要用注解_java中的注解,真的很重要,你理解了嘛?
这篇文章开始讲解java中的注解,在平时的开发当中我相信你或多或少的接触过注解.比如你可能都见过@override,它代表的就是一个注解.但是,为了更加清晰的去介绍注解,我还是先给出一个例子,让你能够 ...
- java中volatile关键字的含义_java中volatile关键字的含义
转自:http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html 在java线程并发处理中,有一个关键字volatile的使用目前存 ...
- java中map如何实现遍历_Java中如何遍历Map对象的4种方法
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
- java中容易混淆的方法_java中容易混淆的区别
本文会随时更新一些java中容易混淆的关键字或者知识点,如有偏见之处,望留言! final和static的差别: 1,final的英语意思"最后的",在java中修饰类,方法和变量 ...
- java中String类是什么_Java中字符串的学习(一)String类的概述及常见方法使用
转载请注明出处http://www.cnblogs.com/devtrees/p/4347079.html (拓展:Api:编程语言对外给我们提供的应用程序接口.) 一.概述: 我们平时上网发帖,帖子 ...
最新文章
- java字符存储,在什么编码是Java字符存储在?
- Matlab 频域滤波处理周期噪声图像(带阻滤波器滤波)
- Leetcode: Sort List
- 重定向dup2的本质
- TreeView Checkbox选中
- C++ 操作符优先级
- Java集合系列---HashMap源码解析(超详细)
- sql timestep 秒数后6位_excel中,如何截取身份证号后6位?前4位?或者中间8位?...
- 世达工具编号查询_世达工具型号-名称对照表
- 【ACL 2019】腾讯AI Lab解读三大前沿方向及20篇入选论文
- 教你怎么批量修改文件后缀名
- Apktool反编译
- 解决Linux 负载过高问题过程记录
- 使用 iview 实现PC端生成推广海报与二维码并下载的功能,基于iview Modal 对话框 与 Carousel 走马灯组件实现
- 全局变量和静态变量以及内存堆栈的关系
- 1299: 【二分查找】找球号
- String数组拆分
- this hits shit!
- Java基础练习题day2
- 如何通过Git客户端从Gitlab下载代码
热门文章
- $ajax({}).done 和 $ajax({}) success 区别
- 跟老齐学python Django实战第一章错误解决
- oracle+导入emp,Oracle数据库导入导出emp文件
- 【测试】身份证的前世今生
- 史上最全的前端开发面试题(含详细答案)
- Blog建设好了,好好看φ(゜▽゜*)♪
- kendo Grid json解析的问题
- Oracle中的伪列
- Windows下断言的类型及实现
- 在存储过程中编写正确的事务处理代码