匿名内部类理解

匿名内部类是 Java 中的一种内部类(定义在另一个类中的类),它没有名称。它们通常用于实现接口或扩展类的简单版本,而无需显式声明一个独立的类。匿名内部类特别适合于创建那些仅用一次的类实例。

特点:
无名称:匿名内部类没有名称,创建时直接通过 new 关键字后跟接口或类名来定义。
一次性使用:它们通常用于实现只需要一次使用的类——例如,在作为参数传递时或在方法内部创建时。
简洁的语法:它们允许你在需要实例化对象的地方快速实现一个接口或类,无需创建一个实际的类定义。
访问外部类的成员:匿名内部类可以访问其外部类的成员变量和方法。

假设我们有一个简单的接口 Greeting:
interface Greeting { void sayHello(); }
我们可以使用匿名内部类来实现这个接口,而不是创建一个实现了 Greeting 接口的命名类:

点击查看代码
public class Test {
    public static void main(String[] args) {
        // 使用匿名内部类实现 Greeting 接口
        Greeting greeting = new Greeting() {
            @Override
            public void sayHello() {
                System.out.println("Hello, World!");
            }
        };

        greeting.sayHello();  // 输出:Hello, World!
    }
}

在这个例子中,我们在 Greeting 接口后面使用了 {} 来提供 Greeting 接口的匿名实现,并覆盖了 sayHello 方法。这个匿名内部类的实例被创建并赋值给 greeting 变量。然后我们通过这个变量调用了 sayHello 方法。

匿名内部类提供了一种快速实现接口或扩展类的方法,尤其是当这种实现只需要在程序中一处使用时。这使得代码更加紧凑,但也可能牺牲了代码的可读性,特别是当实现变得复杂时。

posted @   充满希望与信心  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示