| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package course.anonymousInternalClass;
- /**
- * @author WanJl
- * @version 1.0
- * @title Demo01
- * @description 匿名内部类
- * @create 2026/7/27
- */
- public class Demo01 {
- /*
- Java中的内部类分为三大类:
- 成员内部类:
- |-普通成员内部类
- |-静态成员内部类
- 局部内部类
- 匿名内部类
- 匿名内部类,顾名思义,就是这个类没有名字,是匿名,一般就是定义之后,直接使用。
- 匿名内部类的前提:
- 存在一个类或接口,这里的类可以是普通类也可以是抽象类
- 匿名内部类的格式:
- new 类名(){ // 类名可以是普通父类、抽象父类、或 接口
- 重写类的方法。
- };
- new 接口名(){ // 类名可以是普通父类、抽象父类、或 接口
- 重写接口的方法。
- };
- 匿名内部类的本质是一个继承了某个类或实现了某个接口的【子类的匿名对象】
- 匿名内部类可以使用多态的形式来接收
- Compute compute = new Compute() {
- @Override
- public int add(int a, int b) {
- return a + b;
- }
- };
- compute.add(15,3);
- 匿名内部类直接调用方法
- new Compute() {
- @Override
- public int add(int a, int b) {
- return a + b;
- }
- public void method(){
- System.out.println("匿名内部类特有的方法");
- }
- }.mthod();
- 匿名内部类在开发中的使用:
- 比如发现某个方法需接口或抽象类的子类对象,我们就可以传递一个匿名内部类过去,来简化传统的代码。
- */
- public static void main(String[] args) {
- //创建Usb接口的匿名内部类
- Usb usb=new Usb(){
- @Override
- public void startUsb() {
- System.out.println("启动鼠标");
- }
- @Override
- public void closeUsb() {
- System.out.println("关闭鼠标");
- }
- };
- usb.startUsb();
- usb.closeUsb();
- }
- }
|