千锋长沙Java培训:匿名内部类讲解
很多同学在学习Java的时候,都听说过匿名内部类,那匿名内部类到底是什么呢?你可以挺过很多书或者其他教程说过匿名内部类是一个类或者一个接口的子类对象,又或者说匿名内部类是一个类的匿名子类等等,但是种种这些都是说说而已,今天千锋长沙Java培训讲师就来揭开匿名内部类神秘的面纱,让大家真真切切看到匿名内部类到底是什么?
首先我们写下面这么一个关于匿名内部类的代码,然后反编译查看.class文件的内容,就可以揭开匿名内部类神秘的面纱。
public class Test {
public static void main(String[] args) {
new Fu(){
@Override
public void method() {
System.out.println("匿名内部类重新抽象父类方法");
}
}.method();
}
}
abstract class Fu {
public abstract void method();
}
运行结果截图如下↓
好像看不出匿名内部类到底是什么?别着急,我们找到刚刚运行代码的.class文件,通过我们的Xjad软件反编译查看一下就可以知道真相。我们发现,.class文件多了一个叫Test$1.class,好奇怪,我们只是写了测试类Test和父类Fu,那么这个多出来的就是匿名内部类,我们反编译这个匿名内部类就可以知道真相↓
通过反编译对比,我们知道,匿名内部类,其实就是匿名的子类而已↓
以后,我们就可以大胆的说,匿名内部类,其实就是匿名的子类而已,只不过你隐藏在.class文件里面你看不到,所以叫匿名内部类。
猜你喜欢LIKE
最新文章NEW
相关推荐HOT
更多>>热门推荐
零基础必看的前端HTML+CSS教程
沸Java培训新手实战必备!单机版坦克大战分步实现项目源码
热3种Javascript图片预加载的方法详解
热长沙前端培训:一招教你用vue3+canvas实现坦克大战
新互联网凉了?参加长沙Java培训能找到工作吗?
长沙Java培训实战项目,出游咨询订票系统开发流程
不参加长沙Java培训能学会Java吗?2022Java技能学习路线图
千锋长沙Java培训分享之怎么学习Java集合?
千锋长沙前端培训分享之JavaScript面向对象编程思想详解
千锋长沙前端培训分享之web前端的回流和重绘
千锋长沙前端培训分享之3种Javascript图片预加载的方法详解
千锋长沙前端培训分享之利用Jest测试React组件
千锋长沙前端培训分享之JavaScript中Slice的用例
千锋长沙java培训分享之Socket编程