java匿名内部类

本文讲解了Java中匿名内部类的定义、用途,以及在特定场景下的优势,有助于理解其实现原理和应用技巧。

🔥🔥🔥匿名内部类是内部类的一种,它是我们开发中经常用到的一种内部类。

内部类

  •  成员内部类
  • 静态内部类
  • 局部内部类
  • 匿名内部类

一、匿名内部类的格式

有new关键字就代表创建对象,实际上是创建了一个没有名字的类的对象。

注意语法:最后的 ; 一定不要忘了。

    new 类名或接口名() {
        //重写方法
    };

二、理解匿名内部类

{ }里可以看成一个类,这个类没有名字。

如果new 后面是一个类名,{ }里面的类就是该类的一个子类

如果new 后面是接口名,{ }里的类就是该接口的实现类

假如有一个Animal抽象类,一个Swim接口

三、匿名内部类的应用场景

当一个方法的参数是类或接口时

以类为例,调用该方法要传入该类或该类的子类

如果该类我们只使用一次,那么就可以用匿名内部类简化

举个例子你就明白了

有一个method方法,参数需要传入Animal类 ,我们该如何调用method方法呢?

//method方法 
public static void method(Animal a){
    System.out.println("method被调用");
}
//Animal类
public abstract class Animal {
    public abstract void eat();
}

 ①以前的调用方式

//定义一个狗类
public class Dog extends Animal{
    @Override
    public void eat() {
        ;
    }
}

 ②利用匿名内部类

 如果狗类非常大,那将是件非常麻烦的事情,匿名内部类极大的简化了代码

四、匿名内部类的位置

   可以写在成员位置,也可以写在局部位置

    1.写在成员位置的匿名内部类(方法外类里)

public class Test {
    new 类名或接口名() {
        //重写方法
    };
    public static void main(String[] args) {

    }
}

2.写在局部位置的匿名内部类(方法里面)

public class Test {
    public static void main(String[] args) {
        new 类名或方法名() {
            //重写方法
        };
    }
}
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不会就选C.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值