千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:长沙千锋IT培训  >  技术要点  >  千锋长沙Java培训:匿名内部类讲解

千锋长沙Java培训:匿名内部类讲解

来源:千锋教育
发布人:千锋长沙
时间: 2021-11-30 17:28:09

       很多同学在学习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();

}

运行结果截图如下↓

v2-de610104cf866fddd3308e6a4fa88e9f_720w

       好像看不出匿名内部类到底是什么?别着急,我们找到刚刚运行代码的.class文件,通过我们的Xjad软件反编译查看一下就可以知道真相。我们发现,.class文件多了一个叫Test$1.class,好奇怪,我们只是写了测试类Test和父类Fu,那么这个多出来的就是匿名内部类,我们反编译这个匿名内部类就可以知道真相↓

v2-72a66b24d3f28eccee71e2ae54cd3269_720w

 

       通过反编译对比,我们知道,匿名内部类,其实就是匿名的子类而已↓

v2-b6b2668bf0a78dbd7939fa5a37c9e450_720w

       以后,我们就可以大胆的说,匿名内部类,其实就是匿名的子类而已,只不过你隐藏在.class文件里面你看不到,所以叫匿名内部类。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

最新文章NEW

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>