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 类名或方法名() {
            //重写方法
        };
    }
}
相关文章
|
4月前
|
Java 程序员
深入理解Java匿名内部类的语法和使用场景
深入理解Java匿名内部类的语法和使用场景
|
5月前
|
Java
一篇文章讲明白Java中内部类详解—匿名内部类
一篇文章讲明白Java中内部类详解—匿名内部类
90 2
|
4月前
|
Java
匿名内部类在Java编程中的应用与限制
匿名内部类在Java编程中的应用与限制
|
4月前
|
Java 程序员
深入理解Java匿名内部类的语法和使用场景
深入理解Java匿名内部类的语法和使用场景
|
5月前
|
Java
java使用匿名内部类实现多线程
java使用匿名内部类实现多线程
|
6月前
|
Java
Java 匿名内部类
Java 匿名内部类
19 1
|
5月前
|
Java
【Java基础】 内部类 (成员内部类、局部内部类、静态内部类、匿名内部类)
Java内部类 (成员内部类、局部内部类、静态内部类、匿名内部类)
35 0
|
6月前
|
Java
【Java探索之旅】内部类 静态、实例、局部、匿名内部类全面解析
【Java探索之旅】内部类 静态、实例、局部、匿名内部类全面解析
38 0
java202303java学习笔记第二十四天-匿名内部类3
java202303java学习笔记第二十四天-匿名内部类3
36 0
|
Java 编译器
【Java面试】为什么匿名内部类只能访问外部类的final类型局部变量?
【Java面试】为什么匿名内部类只能访问外部类的final类型局部变量?
152 0