java 之匿名内部类

2023-12-16 17:08:50

文章目录

匿名内部类

在 Java 中,匿名内部类是一种没有显式定义类名称的局部内部类的特殊形式。它通常用于创建一个只需使用一次的简单类或接口的实例。匿名内部类的语法形式相对简洁,通常在创建对象或实现接口时使用。

下面是一个基本的匿名内部类的语法结构:

interface MyInterface {
    void doSomething();
}

public class MyClass {
    public static void main(String[] args) {
        // 使用匿名内部类实现接口
        MyInterface myInterface = new MyInterface() {
            @Override
            public void doSomething() {
                System.out.println("Doing something in the anonymous inner class.");
            }
        };

        // 调用方法
        myInterface.doSomething();
    }
}

在这个例子中,MyInterface 是一个简单的接口,而在 MyClassmain 方法中,使用匿名内部类创建了该接口的一个实例,并在实例中提供了对 doSomething 方法的实现。这样,我们可以在不创建具体类的情况下实现接口并创建对象。

匿名内部类通常用于以下场景:

  1. 实现接口: 匿名内部类经常用于实现某个接口的场景,尤其是接口中只包含一个方法的情况,例如事件监听器。

    button.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            // 处理按钮点击事件的逻辑
        }
    });
    
  2. 继承抽象类: 类似地,匿名内部类也可以用于继承某个抽象类。

    AbstractClass instance = new AbstractClass() {
        @Override
        void abstractMethod() {
            // 提供对抽象方法的实现
        }
    };
    

请注意,匿名内部类在实例化的同时提供了类的定义,但由于没有类名,因此只能在创建实例的地方使用,不能被其他部分引用。匿名内部类通常比较适合那些只需要一次性使用的简单情况。如果需要复杂的逻辑或多次使用,通常更好地选择使用具名的局部类或独立的顶级类。

文章来源:https://blog.csdn.net/weixin_74850661/article/details/135033019
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。