Java 匿名内部类【重点】

本文介绍Java中的匿名内部类,一种简化实现接口或继承类的方式。通过实例演示如何使用匿名内部类来快速实现接口方法,减少代码量并提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、匿名内部类

1、匿名内部类 :是内部类的简化写法。它的本质是一个带具体实现的 父类或者父接口的 匿名的 子类对象

开发中,最常用到的内部类就是匿名内部类了。以接口举例,当你使用一个接口时,似乎得做如下几步操作,

  1. 定义子类

  2. 重写接口中的方法

  3. 创建子类对象

  4. 调用重写后的方法

我们的目的,最终只是为了调用方法,那么能不能简化一下,把以上四步合成一步呢?匿名内部类就是做这样的快捷方式。

前提

匿名内部类必须继承一个父类或者实现一个父接口

格式

在这里插入图片描述

2、使用方式

以接口为例,匿名内部类的使用,代码如下:

定义接口:

public interface A {  
    public void test();  
}

创建B类实现接口A:

public class B implements A {  
    @Override  
    public void test(){  
        System.out.println("b实现a接口");  
    }  
}

创建匿名内部类,并调用:

public class TestB {  
    public static void main(String[] args) {  
    
//第一种: 没有使用匿名内部类 直接创建A接口的子类对象再调用方法  
//      A a = new B();  
//        a.test();  

//第二种: 使用匿名内部类直接重写方法 接着调用
//        A a = new A() {  
//  
//            @Override  
//            public void test() {  
//                System.out.println("b实现接口a");  
//            }  
//        };  
//        a.test(); 

//第三种: 在方法的形式参数是接口或者抽象类时,也可以将匿名内部类作为参数传递。代码如下:
//		  showA(a);

//第四种: 将第二种和第三种方法化简如下
        showA(new A() {  
            @Override  
            public void test() {  
                System.out.println("b实现接口a");  
            }  
        });  
  
  
    }  
    public static void showA(A a){  
       
        a.test();  
    }  
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂神我的神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值