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

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.

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

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

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

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

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

6

14

分享到:

2008-07-25 17:11

浏览 20654

评论

16 楼

weed_hz

2013-04-20

abstract class out(){

void show(){

System.out.printl("hello world");

}

}

15 楼

allenny

2013-01-27

都取名叫anonyInter了,何来匿名呢?

14 楼

Jcson

2012-08-19

我怎么感觉你们理解

Out anonyInter=new Out()

这句理解错了,

anonyInter

并不是内部类的名称,是匿名的,

13 楼

toliuxuan

2012-08-04

monokurobo 写道

首先你对匿名内部类的理解是错的

1.匿名内部类是没有名字的:Out anonyInter=new Out()你在这里已经定义了这个内部类的名字是anonyIntent。

2.可以肯定的是你对匿名内部类的作用的理解,就是可以继承类或者实现接口

亲,anonyIntent这只是一个引用变量而已吧,重么是内部类的名字呢。。

12 楼

monokurobo

2012-02-02

首先你对匿名内部类的理解是错的

1.匿名内部类是没有名字的:Out anonyInter=new Out()你在这里已经定义了这个内部类的名字是anonyIntent。

2.可以肯定的是你对匿名内部类的作用的理解,就是可以继承类或者实现接口

11 楼

JMS_Exception

2011-11-24

误人子弟。。。 :wink:

10 楼

lwy8802

2011-10-17

在匿名内部类中编写的自己的方法是不可见的。此种做法是毫无意义的````

不要误人子弟```谢谢```

9 楼

zhaoyu_h

2011-09-09

很好的啊。。。谢谢啦。。。

8 楼

wwjjkk

2011-02-24

原先一直没搞清楚匿名内部类到底用来做什么,看了LZ写的东西,豁然开朗了

7 楼

yongboy

2010-10-23

Out anonyInter=new Out(){// 获取匿名内部类实例

嗯,这里已经不是匿名了,呵呵~

6 楼

微雨骑驴入剑门

2010-06-11

谢谢

学习了

5 楼

ddzero

2010-05-31

这是匿名内部类吗?顶多算内部类

4 楼

tntxia

2009-12-03

挺有意思的。

3 楼

heart4321

2009-09-30

heart4321 写道

我认为你对匿名内部类的概念认识有误。

2 楼

heart4321

2009-09-30

我认为你对匿名内部内的概念认识有误。

1 楼

mniz

2009-03-13

兄弟,我虽然不是很懂匿名内部类,但是绝对不是你所说的,匿名内部类的语法你的先弄清楚

java匿名内部类_java中匿名内部类的两种实现方式相关推荐

  1. java的login_Java中login的两种实现方式

    方式一:将VO的东西封装到Action里面 编写Action方法 package action; import com.opensymphony.xwork2.ActionSupport; publi ...

  2. PCBA加工中常见的两种焊接方式详解

    PCBA加工中常见的两种焊接方式详解 PCBA加工,两种常见的焊接方式就是回流焊和波峰焊,与手动焊接技术相比,自动焊接技术具有减少人为因素的影响.提高效率.降低成本.提高质量等优势,在PCBA加工中, ...

  3. java定义数组_java中数组的三种定义方式_java中数组的定义及使用方法(推荐)...

    java中数组的三种定义方式 java中,数组是一种很常用的工具,今天我们来说说数组怎么定义 [java] view plain copy /** * 数组的三种定义方法 * 1.数组类型[] 数组名 ...

  4. python wait until_荐selenium显示等待怎么写之WebDriverWait中until的两种实现方式及原理分析...

    关于显示等待WebDriverWait是什么,可以看selenium-wait源码解析 话不多说,先上实现代码: 第一种实现方式(官方提供): from selenium.webdriver.supp ...

  5. java 深克隆_Java实现深克隆的两种方式

    序列化和依次克隆各个可变的引用类型都可以实现深克隆,但是序列化的效率并不理想 下面是两种实现深克隆的实例,并且测试类对两种方法进行了对比: 1.重写clone方法使用父类中的clone()方法实现深克 ...

  6. java 舍_Java中BigDecimal的8种舍入模式

    java.math.BigDecimal 不可变的.任意精度的有符号十进制数.BigDecimal 由任意精度的整数非标度值和32位的整数标度(scale)组成. 如果为零或正数,则标度是小数点后的位 ...

  7. websocket java 例子_java 实现websocket的两种方式实例详解

    目录 一.介绍 1.两种方式,一种使用tomcat的websocket实现,一种使用spring的websocket 2.tomcat的方式需要tomcat 7.x,JEE7的支持. 3.spring ...

  8. java中map的遍历方法_Java中Map的三种遍历方式

    集合中的三种遍历方式,如下代码: import java.util.Collection; import java.util.HashMap; import java.util.Iterator; i ...

  9. android编程fragment,详解Android中Fragment的两种创建方式

    onCreate():在创建fragment时系统会调用此方法.在实现代码中,你可以初始化想要在fragment中保持的那些必要组件,当fragment处于暂停或者停止状态之后可重新启用它们. onC ...

最新文章

  1. cocos3 深入理解tank和子弹之间的关系
  2. 10款炫酷的HTML5动画特效
  3. xampp中apache点击启动失败解决方法
  4. 编译器优化对齐(字节对齐)
  5. 【渝粤教育】国家开放大学2018年春季 3717-21T天然气管道长输技术 参考试题
  6. c#textBox控件限制只允许输入数字及小数点
  7. VMware虚拟机安装Windows 7
  8. Multisim应用举例
  9. pdf转换器免注册码
  10. sql 去重查询 distinct
  11. 什么是物联网应用开发(IoT Studio)
  12. app注册如何集成语音验证码功能?
  13. Js中slite,splice,slice,join方法的用法区别
  14. 使用python编写彩色圆圈
  15. 编译android源码!2021年展望Android原生开发的现状,复习指南
  16. GTC 2017现场直击:以人工智能的名义搞一场黑科技的盛会!
  17. springboot基础(43):j2cache
  18. DRG/DIP 分组器接口开放调用
  19. 蓝桥31天|今天4道题Day11|C++
  20. 网易云信消息抄送php,网易云信消息抄送

热门文章

  1. 选词的好坏直接影响着直通车的整体推广效果
  2. 微信授权登陆介入第三方APP
  3. jupiter 85 2.0
  4. DRGDIP分组云平台2.0版,自有知识产权
  5. Sublime text3 Version 3.22下载安装及注册
  6. 基于FCM模糊C均值的数据聚类算法matlab仿真
  7. ###pdf转化为图片###
  8. 春暖花开,给自己多一点甜蜜的关爱丨钛空舱
  9. 【Excel自动化办公Part2】:向某个格子里写入内容、append()插入行、在表格中插入公式、插入行和列、删除行和列、移动格子
  10. ICMP Destination unreachable(Host administratively prohibited)