我是靠谱客的博主 儒雅小鸭子,最近开发中收集的这篇文章主要介绍匿名内部类的使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

匿名内部类通常用于简化代码的编写,

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

之前对于new了一个接口或者抽象类不是很理解,

现在知道:

因为没有名字,也就没有构造函数,

所以只能通过显示调用父类函数创建匿名内部类。


还有关于匿名内部类使用外部类变量作为形参传入时需要用final修饰,

在网上看了许多网友的理解,各有其说法,但关键我的

理解是在于final是为了保证变量在外部类和内部类的不可变,

至于是因为机制的问题还是其他,暂不做过多追究


以及关于本文参考来源Nerxious的播客中

匿名内部类只能实例化一次”的说法不是很理解



匿名内部类的产生:如果不使用匿名内部类来实现抽象方法,需要单独写一个类向上转型实现抽象方法,比较麻烦

例子:


运行结果:eat something

这里就为了实现抽象类里的抽象方法而专门写了一个Child类。


为了简化代码书写,可以使用匿名内部类

例子:


运行结果:eat something

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


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


并且,匿名内部类还能用于接口上,只要一个类是抽象的或是一个接口,那么其子类中的方法都可以使用匿名内部类来实现



运行结果:eat something



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

Thread类的匿名内部类实现

例子:



运行结果:1 2 3 4 5


Runnable接口的匿名内部类实现

例子:



运行结果:1 2 3 4 5

最后

以上就是儒雅小鸭子为你收集整理的匿名内部类的使用的全部内容,希望文章能够帮你解决匿名内部类的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部