当前位置: 首页 > article >正文

JAVA-内部类和匿名内部类

参考文献
https://blog.csdn.net/m0_73311735/article/details/127702688
https://blog.csdn.net/weixin_45861283/article/details/119344772

1.内部类
定义:将一个类 A 定义在另一个类 B 里面,里面的那个类 A 就称为内部类,B 则称为外部类。

特点:
(1)内部类可以直接访问外部类的成员,包括私有成员外部类要访问内部类的成员,必须要建立内部类的对象。
(2)访问格式为:

外部类名.内部类名 对象名 = new 外部类().new 内部类()

(3)内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class 文件,但是前面冠以外部类的类名和符号。

2.匿名内部类
匿名内部类 :是内部类的简化写法。
它的本质是一个带具体实现的父类或者父接口的 匿名的 子类对象。在开发过程中,最常用到的内部类就是匿名内部类了。
目的是为了实现接口并且调用接口内部的方法

以接口举例,FlyAble是个接口:

public class InnerDemo {
    public static void main(String[] args) {
        /**
        1.等号右边:是匿名内部类,定义并创建该接口的子类对象
        2.等号左边:是多态赋值,接口类型引用指向子类对象
        */
        FlyAble f = new FlyAble(){
            public void fly() {
                System.out.println("芜湖,起飞!!🕊");
            }
        };
        //调用 fly方法,执行重写后的方法
        f.fly();
    }
}

http://www.kler.cn/news/324022.html

相关文章:

  • Pandas空值识别,空值填充,空值过滤方法超详细解读
  • 如何手动安装libcrypto.so.10和libssl.so.10这两个库?
  • C语言 | Leetcode C语言题解之第440题字典序的第K小数字
  • pycharm2024版 搭配Anaconda创建pytorch项目
  • 算法分析,主定理
  • 【解决方案】Java 互联网项目中常见的 Redis 缓存应用场景
  • c语言和c++一样吗
  • Spring Boot实现房产租赁业务逻辑
  • 互联网安全为什么要做风险评估:构建数字世界的坚固防线
  • 排序算法C++
  • 经济不好,但是遍地都是赚钱的机会
  • 万元购车平台源码开发总结与关键技术解析
  • 如何应对“.DevicData-C-XXXXXXXX”勒索病毒:建议与防范措施
  • fiddler抓包12_篡改请求(请求前断点)
  • *C++:list
  • 【C语言零基础入门篇 - 17】:排序算法
  • ubuntu系统下,c++图形库Matplot++配置
  • 深度学习(3):Tensor和Optimizer
  • 求职Leetcode题目(11)
  • 如何使用C语言接入Doris数据库
  • 线性表二——栈stack
  • 微信小程序开发系列之-在微信小程序中使用云开发
  • How to install JetBrains ToolBox in Ubuntu 22.04 LTS?
  • ELK-03-skywalking监控linux系统
  • JAVA JDK华为云镜像下载,速度很快
  • AIGC入门:Comfyui整合包,解压即用!
  • Goweb---Gorm操作数据库(二)
  • project_object_model_3d
  • ES6中迭代器与生成器知识浅析
  • Python知识点:如何使用Python与.NET进行互操作(IronPython)