1.匿名内部类

在介绍匿名内部类前,先引用一段代码材料,通过这段代码来理解匿名内部类
如下图,我们定义了接口和一个方法,方法中调用该接口的抽象方法,这时我们要调用use方法,但是该怎么传参呢?
我们将接口放入()里,发现是报错,那如果new一个对象呢?也不行,因为接口根本不能实例化

既然从接口本身无法下手,那我们可以用对象多态来解决,把实现类放到()不就可以了

结论:今后调用方法时,如果方法的形参是接口类型,我们传入的就是该接口的实现类对象
虽然解决了问题,但我们发现,为了调用一个形参是接口的方法,我们做了很多步骤,十分麻烦。但如果用的是匿名内部类,我们只需一步就可以解决
形参是接口类型,所以要传入实现类对象,这里我们根据匿名内部类的写法写入()
匿名内部类本质是在继承类或是实现接口,以下图举例,当我们new Inter(){ } 其实是在实现Inter这个接口,相当于不需要实现类就可以实现这个接口

既然实现接口,那肯定要重写接口里的方法,所以这里才会报错

整个这一坨就是接口的实现类对象

匿名内部类使用场景
虽然学了匿名内部类,但这并不意味着我们要放弃普通的实现类,假如一个接口中有许多抽象方法,我们调用时用的匿名内部类

很明显,阅读性不高。所以,当接口中抽象方法少的时候,我们可以使用匿名内部类快速实例化,多的时候还是得用实现类,再选择我们要调用的方法

posted @
2025-02-27 14:01
直実
阅读(
1)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通