难度
初级
学习时间
10分钟
适合人群
零基础
开发语言
java
开发环境
- JDK v11
- IntelliJ IDEA v2018.3
提示
本教学属于系列教学,内容具有连贯性,本章使用到的内容之前教学中都有详细讲解。
1.匿名内部类与继承
匿名内部类与正常的继承相比有些受限,因为匿名内部类既可以继承类,也可以实现接口,但是不能两者兼备。而且如果是实现接口,也只能实现一个接口。
下面,我们来演示一下匿名内部类已经继承了抽象内部类仍然还要使用继承的情况。
演示:
请在Main类中定义两个抽象内部类People和Man。
在Main类main()方法中创建一个People的匿名内部类对象并继承抽象内部类Man。
请观察程序运行结果。
代码:
Main类:
结果:
错误信息:
文字版:
从运行结果来看,程序出现了一点错误。
按照之前说过的匿名内部类是一个表达式来说,它不应该也不能再继承其他类。
错误的地方:
该处不能使用extends关键字。
2.匿名内部类与实现接口
上面的例子说明了匿名内部类不能继承其他类,接下来演示匿名内部类实现接口会怎么样。
演示:
请在Main类中定义两个接口People和Man。
在Main类main()方法中创建一个People的匿名内部类对象并实现接口Man。
请观察程序运行结果。
代码:
Main类:
结果:
错误信息:
文字版:
/Users/admin/Workspace/Java/Hello/src/main/Main.java
Error:(35, 37) java: 需要’;’
Error:(35, 49) java: 不是语句
Error:(35, 52) java: 需要’;’
Error:(41, 21) java: 需要’;’
从运行结果来看,程序发现了一个小小的错误。我们来看一下。
按照之前说过的匿名内部类是一个表达式来说,它不应该也不能再实现其他接口。
错误的地方:
该处不能使用implements关键字。
总结
- 匿名内部类只能实现一个继承类和一个接口。
至此,Java中匿名内部类继承与实现相关内容讲解先告一段落,更多内容请持续关注。
附:匿名内部类学习资料
没有学习过的同学或者是不太清楚局部内部类的同学也别急,可以点击下面局部内部类学习资料来进行学习。
附:类学习资料
附:抽象类学习资料
附:接口学习资料
附:内部类学习资料
答疑
如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。
上一章
下一章
“全栈2019”Java第一百一十章:局部内部类与匿名内部类区别详解
学习小组
加入同步学习小组,共同交流与进步。
- 方式一:关注头条号Gorhaf,私信“Java学习小组”。
- 方式二:关注公众号Gorhaf,回复“Java学习小组”。
全栈工程师学习计划
关注我们,加入“全栈工程师学习计划”。
版权声明
原创不易,未经允许不得转载!