Java匿名内部类
来源:互联网 发布:辣酱油 知乎 编辑:程序博客网 时间:2024/05/23 01:14
导语
学完匿名内部类就懂的情书。
// 情书// 在我的世界你永远18岁me.world(new You() { // 在我的世界只有最初的你 public void getAge() { // 你的年龄 System.out.println("18岁"); // 永远18岁 } });
主要内容
- 接口与抽象类和匿名内部类的关系
具体内容
匿名内部类也就是没有名字的内部类,正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写,但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口。
为什么需要存在有匿名内部类。
范例:观察如下代码
interface Message { public void print();}class MessageImpl imlements Message { public void print() { System.out.println("Hello World !"); }}public class TestDemo { public static void main(String args[]) { fun(new MessageImpl()); } public static void fun(Message msg) { msg.print(); }}
输出结果:
Hello World !
正常的规律就是一个接口或者是抽象类需要有子类,子类要覆写所有的抽象方法。
可是如果说现在的MessageImpl子类只使用唯一的一次,那么还有必要将其单独定义为一个类吗?所以这个时候,就可以采用匿名内部类的方式进行代码的简化。
范例:简化后的代码
interface Message { public void print();}public class TestDemo { public static void main(String args[]) { fun(new Message() { public void print() { System.out.println("Hello World !"); } }); } public static void fun(Message msg) { msg.print(); }}
输出结果:
Hello World !
下面这个代码块就被称为匿名内部类。
{ public void print() { System.out.println("Hello World !"); }}
使用匿名内部类的时候,有一个前提:必须要基于接口或抽象类的应用。
但是需要强烈强调的是,如果匿名内部类定义在了方法里面,方法的参数或者是变量要被匿名内部类所访问,那么必须加上final关键字(JDK 1.8之后此要求被改变了)。
总结
匿名内部类是在抽象类和接口的基础上发展的,匿名内部类的最大好处是帮助用户减少了类的定义。
更多内容戳这里(我的博客导航)
阅读全文
0 0
- JAVA匿名内部类
- java 匿名内部类
- JAVA匿名内部类
- java 匿名内部类
- JAVA匿名内部类
- java 匿名内部类
- JAVA匿名内部类
- java 匿名内部类
- JAVA匿名内部类
- Java匿名内部类
- JAVA匿名内部类
- java匿名内部类
- java匿名内部类
- java匿名内部类
- JAVA 匿名内部类
- JAVA匿名内部类
- java匿名内部类
- java匿名内部类
- 2.TCL脚本学习——Tk入门基础
- C
- 牛客网错题总结集(二)
- 3.TCL脚本学习——expect
- Git 命令
- Java匿名内部类
- 2017.10.20
- 【机器学习】神经网络总结
- 洛谷 1314||NOIP 2011 聪明的质检员 二分 解题报告
- LaTex(PART V)页脚和页眉
- bindValue 和 bindParam的惊天大坑!
- MySQL取得某一范围随机数
- Java包装类
- 2017-2018 ACM-ICPC, NEERC Problem G Galactic Collegiate Programming Contest(树状数组)