使用匿名内部类课使代码更加简洁、紧凑,模块化程度更高。内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到。然而这个不是我说的重点,我说的很简单,就是匿名内部类的两种实现方式:第一种,继承一个类,重写其方法;第二种,实现一个接口(可以是多个),实现其方法。下面通过代码来说明:

public class TestAnonymousInterClass{ public static void main(String args[]){ TestAnonymousInterClass test=new TestAnonymousInterClass(); test.show(); } //在这个方法中构造了一个匿名内部类 private void show(){ Out anonyInter=new Out(){// 获取匿名内部类实例 void show(){//重写父类的方法 System.out.println("this is Anonymous InterClass showing."); } }; anonyInter.show();// 调用其方法 } } // 这是一个已经存在的类,匿名内部类通过重写其方法,将会获得另外的实现 class Out{ void show(){ System.out.println("this is Out showing."); } }

程序运行的输出结果为:

this is Anonymous InterClass showing.

所以在这里看出,匿名内部类有了自己的实现。其实很简单,使用匿名内部类是因为我这地方需要有点什么特殊的实现,所以我就在这地方把具体实现也给了出来了。然后我就在这地方获取它的实例,调用它的方法。

接口的方式,只要把父类换成接口就行了,没必要给出代码了。

使用匿名内部类时我们不要忘了我们的目的,我们只是在这地方想对某个类有特殊的实现。而不要想得太多,在匿名内部编写其它的方法。在匿名内部类中编写的自己的方法是不可见的。此种做法是毫无意义的,当然一般也不会这么做。在这里只是告诉初学者对于匿名内部类不要想的太多,而要这么想:匿名内部类就是重写父类或接口的方法。

匿名内部类是没有名字的,所以我们没办法获得其类型,而只能把它当作超类或接口类型来使用。

当然,我这篇文章不是很有深度。欢迎发表意见!

Java中匿名类的两种实现方式相关推荐

  1. Java中定义字符串的两种常见方式、使用==和equals()比较字符串

    在讲使用==和equals()比较字符串之前,我们首先要讲定义字符串的两种常见方式,一种是定义一个常量,即直接定义字符串,一种是通过new关键字定义一个变量,即使用String类定义字符串,如下图: ...

  2. java中字符串的创建_【转载】 Java中String类型的两种创建方式

    本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...

  3. java map遍历_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  4. java中两种遍历集合的方式_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  5. java 匿名list,java创造匿名对象的两种方法

    在java中有时候需要一些匿名对象的使用.可能有些小伙伴拿还不会创造,其实我们在学习一些方法时都或多或少的接触过.本篇所要讲到的创造匿名对象总结了两种方法,分别是静态工具方法和Lambda表达式,我们 ...

  6. Java中HashMap遍历的两种方式

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...

  7. Java框架篇---spring aop两种配置方式

    Java框架篇---spring aop两种配置方式 第一种:注解配置AOP 注解配置AOP(使用 AspectJ 类库实现的),大致分为三步:  1. 使用注解@Aspect来定义一个切面,在切面中 ...

  8. JavaSE学习总结(八)常用类(上)Object类==与equals方法的区别浅克隆的特点Scanner类String类String两种创建对象方式的区别String类的各种功能

    JavaSE学习总结(八)常用类(上)/Object类/==与equals方法的区别/浅克隆的特点/Scanner类/String类/String两种创建对象方式的区别/String类的各种功能 常用 ...

  9. Java中List集合的三种遍历方式(全网最详)

    Map集合:链接: Map集合的五种遍历方式及Treemap方法 Set集合:链接: Java中遍历Set集合的三种方法 TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法 ...

最新文章

  1. java 多线程bean 注入_java多线程中注入Spring对象问题
  2. 最先进的AI还不如动物聪明?首届AI-动物奥运会英国开赛!
  3. Cassandra 常见错误索引
  4. Vue.js 组件注册
  5. jenkins Publish over SSH 的配置与使用
  6. UOJ #576. 积的第K小数
  7. Remoting核心类库RealProxy迁移
  8. python3 gui协程_Python3进阶-协程
  9. WordPress基础教学:绝对必装的JetPack外挂
  10. Linux系列 | 了解nohup和的功效
  11. CNN卷积神经网络-tensorflow
  12. Spring Boot系列(一)——初识Spring Boot
  13. Atitit 知识搜索 信息检索的方法总结 目录 1. 目录搜索 1 1.1. 向下同级搜索 1 1.2. 向上目录抽象搜索 1 2. hash搜索模式 1 2.1. 关键词搜索 主题搜索 1 2
  14. 数值计算与计算机应用实例,数值计算的若干应用实例求解4_8.doc
  15. FPGA的NIOS-II
  16. 概率论-条件概率,全概率,概率乘法公式,贝叶斯公式
  17. 相对路径目录返回问题
  18. Python|随机数的奥秘
  19. Ubuntu下docker相关问题 - 持续更新中
  20. Java源码阅读之String(4)

热门文章

  1. Idea开发工具还原Ctrl+Z掉的内容
  2. oculus rift s_如何设置Oculus Rift并开始玩游戏
  3. java安装步骤_win10系统安装java的详细步骤(图文)
  4. shell脚本用户输入处理——shell编程学习_七
  5. python二维列表转置
  6. 亚马逊最新财报盈利下滑,我们仍然看好
  7. JS向表格里添加数据
  8. Java,张丘建《算经》中提出“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何?
  9. 1980年图灵奖--查尔斯·霍尔简介
  10. jq判断 checkbox 是否选中以及设置checkbox选中