Java匿名内部类的写法示例

 更新时间:2020年08月30日 16:38:46   作者:#YF#  
这篇文章主要给大家介绍了关于Java匿名内部类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

在Java中调用某个方法时,如果该方法的参数是一个接口类型,除了可以传入一个参数接口实现类,还可以使用匿名内部类实现接口来作为该方法的参数。

匿名内部类其实就是没有名称的内部类,在调用包含有接口类型参数的方法时,通常为零简化代码,不会创建一个接口的实现类作为方法参数传入,而是直接通过匿名内部类的形式传入一个接口类型参数,在匿名内部类中直接完成方法的实现。

创建匿名内部类的基本语法格式如下:

new 父接口(){
    //匿名内部类实现部分
}

示例

interface Animal{
 void shout();
}
public class Example21 {
public static void main(String[] args) {
 String name="小花";
 //定义匿名内部类作为参数传递给animalShout方法
 animalShout(new Animal() {
 //实现shout()方法
 public void shout() {
 //jdk8开始,局部内部类、匿名内部类课堂访问非final的局部变量
 System.out.println(name+"喵喵。。。");
 }
 });
}
//定义静态方法animalShout(),接收接口类型参数
public static void animalShout(Animal an) {
 an.shout();//调入传入对象an的shout()方法
}
}

注意:

在调用animalShout()方法时,在方法的参数位置上写上new Animal(){},这相当于创建了一个实例对象,并将对象作为参数传给animalShout()方法。在new Animal()后面有一对大括号表示创建的对象为Animal的子类实例,该子类是匿名的

总结

到此这篇关于Java匿名内部类的文章就介绍到这了,更多相关Java匿名内部类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何使用stream从List对象中获取某列数据

    如何使用stream从List对象中获取某列数据

    这篇文章主要介绍了如何使用stream从List对象中获取某列数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • JVM的类加载过程以及双亲委派模型详解

    JVM的类加载过程以及双亲委派模型详解

    这篇文章主要介绍了JVM的类加载过程以及双亲委派模型详解,类加载器就是根据指定全限定名称将 class 文件加载到 JVM 内存,然后再转化为 class 对象。,需要的朋友可以参考下
    2019-06-06
  • 基于IDEA,Eclipse搭建Spring Boot项目过程图解

    基于IDEA,Eclipse搭建Spring Boot项目过程图解

    这篇文章主要介绍了基于IDEA,Eclipse搭建Spring Boot项目过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Java IO之序列化与反序列化详解

    Java IO之序列化与反序列化详解

    这篇文章主要为大家介绍了Java IO之序列化与反序列化,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • SpringBoot2.0整合tk.mybatis异常解决

    SpringBoot2.0整合tk.mybatis异常解决

    本文主要介绍了SpringBoot2.0整合tk.mybatis异常,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • spring boot整合mongo查询converter异常排查记录

    spring boot整合mongo查询converter异常排查记录

    这篇文章主要为大家介绍了spring boot整合mongo查询时抛出converter异常的排查解决记录,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-03-03
  • Mybatis传递多个参数的三种实现方法

    Mybatis传递多个参数的三种实现方法

    这篇文章主要介绍了Mybatis传递多个参数的三种实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • java 判断list是否为空过程解析

    java 判断list是否为空过程解析

    这篇文章主要介绍了java 判断list是否为空过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Springboot连接和操作mongoDB方式

    Springboot连接和操作mongoDB方式

    这篇文章主要介绍了Springboot连接和操作mongoDB方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • java ClassLoader机制详细讲解

    java ClassLoader机制详细讲解

    ClassLoader一个经常出现又让很多人望而却步的词,本文将试图以最浅显易懂的方式来讲解 ClassLoader,希望能对不了解该机制的朋友起到一点点作用
    2016-07-07

最新评论