Java内部类(一)——匿名内部类
来源:互联网 发布:大连网络教育报名 编辑:程序博客网 时间:2024/04/28 06:14
Java匿名内部类
顾名思义,就是没有名字的内部类。表面上看起来它们似乎有名字,实际上不是它们的名字。 ——百度百科
特性说明
- 没有名字的类
- 既然这个类没有名字,那么就只能使用一次,进而简化代码编写
- 前提条件:必须继承一个父类或者实现一个接口
声明格式
new ParentName(){ ... // 内部类的定义}
实例分析
abstract class Animal { public abstract void run();}class Fish extends Animal { public void run() { System.out.println("Swimming!"); }}public class Main { public static void main(String[] args) { Fish fish = new Fish(); fish.run(); }}// 运行结果:Swimming!
如果我们这个类只使用一次,那么我们创建这样一个类岂不是很浪费?所以就有了匿名内部类的出现。
abstract class Animal { public abstract void run();}public class Main { public static void main(String[] args) { Animal fish = new Animal(){ public void run() { System.out.println("Swimming!"); } }; }}// 运行结果:Swimming!
对于接口,和抽象类的使用是一样的。
也就是说,只要一个类是抽象的或是一个接口,那么其子类中的方法都可以使用匿名内部类来实现。最常用的情况就是在多线程的实现上,因为要实现多线程必须继承Thread类或是继承Runnable接口。
public class Main { public static void main(String[] args) { Thread thread = new Thread(){ @Override public void run(){ System.out.println("你好,匿名内部类!"); } } thread.start(); }}// 运行结果:你好,匿名内部类!
注意事项
- 使用匿名内部类时,必须是继承一个类或者实现一个接口,但是两者不可兼得。
- 匿名内部类中不能定义构造函数。
- 匿名内部类中不能存在任何的静态成员变量和静态方法。
- 匿名内部类不能是抽象的,它必须要实现继承的类或者实现的接口的所有抽象方法。
阅读全文
0 0
- Java内部类(一)——匿名内部类
- Java内部类(成员内部类、局部内部类、静态内部类、匿名内部类)
- 内部类——匿名内部类
- java——内部类、匿名类、静态内部类
- JAVA基础——内部类、匿名内部类
- 黑马程序员——java 内部类、匿名内部类
- Java杂记——匿名内部类
- JAVA基础——匿名内部类
- Java——匿名内部类
- JAVA学习——匿名内部类
- java——匿名内部类
- JAVA匿名内部类
- java 匿名内部类
- JAVA匿名内部类
- java 匿名内部类
- JAVA匿名内部类
- java 匿名内部类
- JAVA匿名内部类
- typedef函数指针的用法[转+修改]
- was服务武器安装部署遇到的问题
- P1423 小玉在游泳
- springcloud之hystrix使用
- 用construct2做小游戏的分析版
- Java内部类(一)——匿名内部类
- kindeditor简单使用
- 【面经】猿题库-2017年8月25日,散招实习生
- [LeetCode]268. Missing Number
- 修复第一个游戏的小bug以及完成第二个游戏。
- mask rcnn解读
- 有三个线程A、B、C(线程名称或id),循环打印10次ABCABB…
- 会场安排问题
- 如何使用construct2制作 HTML5