【Java】匿名内部类底层实现原理

目录

1.接口

[2. 抽象类](#2. 抽象类)


1.接口

MayiktA.java

java 复制代码
package com.面向对象.Demo40;

public interface MayiktA {
    void mayiktA();
}

Test01.java

java 复制代码
package com.面向对象.Demo40;

public class Test01 {
    public static void main(String[] args) {
        // new MayiktA接口 底层实际上 帮助我们创建了 实现类 实现了 MayiktA接口
        MayiktA mayiktA = new MayiktA() {
            @Override
            public void mayiktA() {
                System.out.println("匿名内部类-mayiktA()");
            }
        };
        mayiktA.mayiktA();
    }
    /**
     * 反编译技术
     *
     * Java源代码 编译成class文件
     * class文件 反编译为java源代码
     *
     * 接口和抽象类 是不能实例化
     * 匿名内部类底层 new 接口 底层还是 帮我们创建了 实现类 名称:null------------编译阶段实现
     */

}

Test01$1.class(通过反编译工具)

java 复制代码
package com.面向对象.Demo40;
final class null implements MayiktA {
  public void mayiktA() {
    System.out.println("匿名内部类-mayiktA()");
  }
}

2. 抽象类

MayiktB.java

java 复制代码
package com.面向对象.Demo40;

public abstract class MayiktB {
    public abstract void mayiktB();
}

Test02.java

java 复制代码
package com.面向对象.Demo40;

public class Test02 {
    public static void main(String[] args) {
        //java编译阶段 创建一个子类继承MayiktB抽象类
        MayiktB mayiktB = new MayiktB() {
            @Override
            public void mayiktB() {
                System.out.println("使用匿名内部类 调用抽象方法mayiktB()");
            }
        };
        mayiktB.mayiktB();
    }
}

Test02$1.class

java 复制代码
final class null extends MayiktB{
    public void mayiktB(){
        System.out.println("使用匿名内部类 调用抽象方法mayiktB()");
    }
}

下一篇文章:

相关推荐
hy____12312 分钟前
string类(详解)
开发语言·c++
东阳马生架构12 分钟前
Sentinel源码—6.熔断降级和数据统计的实现二
java·sentinel
跟着杰哥学Python18 分钟前
一文读懂Python之numpy模块(34)
开发语言·python·numpy
爱吃烤鸡翅的酸菜鱼19 分钟前
Java【网络原理】(4)HTTP协议
java·网络·后端·网络协议·http
氦客22 分钟前
kotlin知识体系(六) : Flow核心概念与与操作符指南
android·开发语言·kotlin·协程·flow·冷流·热流
无际单片机编程24 分钟前
嵌入式C语言位操作的几种常见用法
java·c语言·stm32·单片机·嵌入式硬件
xoxo-Rachel29 分钟前
SpringBoot 基本原理
java·spring boot·spring
凌冰_39 分钟前
IDEA2024 pom.xml依赖文件包报红解决
xml·java·intellij-idea
陈璆鸣1 小时前
【java+Mysql】学生信息管理系统
java·mysql·用户登录·学生信息·成绩信息
八了个戒1 小时前
「数据可视化 D3系列」入门第八章:动画效果详解(让图表动起来)
开发语言·前端·javascript·数据可视化