【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()");
    }
}

下一篇文章:

相关推荐
陈一Tender3 分钟前
JavaWeb后端实战(登录认证 & 令牌技术 & 拦截器 & 过滤器)
java·开发语言·spring boot·mysql
Camel卡蒙3 分钟前
红黑树详细介绍(五大规则、保持平衡操作、Java实现)
java·开发语言·算法
jerryinwuhan7 分钟前
机器人模拟器(python)
开发语言·python·机器人
孤廖30 分钟前
吃透 C++ 栈和队列:stack/queue/priority_queue 用法 + 模拟 + STL 标准实现对比
java·开发语言·数据结构·c++·人工智能·深度学习·算法
我命由我1234532 分钟前
Android 对话框 - 对话框全屏显示(设置 Window 属性、使用自定义样式、继承 DialogFragment 实现、继承 Dialog 实现)
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
驰羽38 分钟前
[GO]GORM中的Tag映射规则
开发语言·golang
Full Stack Developme42 分钟前
java.net 包详解
java·python·.net
非凡的世界1 小时前
深入理解 PHP 框架里的设计模式
开发语言·设计模式·php
小龙报1 小时前
《算法通关指南---C++编程篇(3)》
开发语言·c++·算法·visualstudio·学习方法·visual studio
一叶飘零_sweeeet1 小时前
深入 Spring 内核:解密 15 种设计模式的实战应用与底层实现
java·spring·设计模式