java匿名内部类_java中匿名内部类的两种实现方式
使用匿名内部类课使代码更加简洁、紧凑,模块化程度更高。内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到。然而这个不是我说的重点,我说的很简单,就是匿名内部类的两种实现方式:第一种,继承一个类,重写其方法;第二种,实现一个接口(可以是多个),实现其方法。下面通过代码来说明:
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中匿名内部类的两种实现方式相关推荐
- java的login_Java中login的两种实现方式
方式一:将VO的东西封装到Action里面 编写Action方法 package action; import com.opensymphony.xwork2.ActionSupport; publi ...
- PCBA加工中常见的两种焊接方式详解
PCBA加工中常见的两种焊接方式详解 PCBA加工,两种常见的焊接方式就是回流焊和波峰焊,与手动焊接技术相比,自动焊接技术具有减少人为因素的影响.提高效率.降低成本.提高质量等优势,在PCBA加工中, ...
- java定义数组_java中数组的三种定义方式_java中数组的定义及使用方法(推荐)...
java中数组的三种定义方式 java中,数组是一种很常用的工具,今天我们来说说数组怎么定义 [java] view plain copy /** * 数组的三种定义方法 * 1.数组类型[] 数组名 ...
- python wait until_荐selenium显示等待怎么写之WebDriverWait中until的两种实现方式及原理分析...
关于显示等待WebDriverWait是什么,可以看selenium-wait源码解析 话不多说,先上实现代码: 第一种实现方式(官方提供): from selenium.webdriver.supp ...
- java 深克隆_Java实现深克隆的两种方式
序列化和依次克隆各个可变的引用类型都可以实现深克隆,但是序列化的效率并不理想 下面是两种实现深克隆的实例,并且测试类对两种方法进行了对比: 1.重写clone方法使用父类中的clone()方法实现深克 ...
- java 舍_Java中BigDecimal的8种舍入模式
java.math.BigDecimal 不可变的.任意精度的有符号十进制数.BigDecimal 由任意精度的整数非标度值和32位的整数标度(scale)组成. 如果为零或正数,则标度是小数点后的位 ...
- websocket java 例子_java 实现websocket的两种方式实例详解
目录 一.介绍 1.两种方式,一种使用tomcat的websocket实现,一种使用spring的websocket 2.tomcat的方式需要tomcat 7.x,JEE7的支持. 3.spring ...
- java中map的遍历方法_Java中Map的三种遍历方式
集合中的三种遍历方式,如下代码: import java.util.Collection; import java.util.HashMap; import java.util.Iterator; i ...
- android编程fragment,详解Android中Fragment的两种创建方式
onCreate():在创建fragment时系统会调用此方法.在实现代码中,你可以初始化想要在fragment中保持的那些必要组件,当fragment处于暂停或者停止状态之后可重新启用它们. onC ...
最新文章
- cocos3 深入理解tank和子弹之间的关系
- 10款炫酷的HTML5动画特效
- xampp中apache点击启动失败解决方法
- 编译器优化对齐(字节对齐)
- 【渝粤教育】国家开放大学2018年春季 3717-21T天然气管道长输技术 参考试题
- c#textBox控件限制只允许输入数字及小数点
- VMware虚拟机安装Windows 7
- Multisim应用举例
- pdf转换器免注册码
- sql 去重查询 distinct
- 什么是物联网应用开发(IoT Studio)
- app注册如何集成语音验证码功能?
- Js中slite,splice,slice,join方法的用法区别
- 使用python编写彩色圆圈
- 编译android源码!2021年展望Android原生开发的现状,复习指南
- GTC 2017现场直击:以人工智能的名义搞一场黑科技的盛会!
- springboot基础(43):j2cache
- DRG/DIP 分组器接口开放调用
- 蓝桥31天|今天4道题Day11|C++
- 网易云信消息抄送php,网易云信消息抄送
热门文章
- 选词的好坏直接影响着直通车的整体推广效果
- 微信授权登陆介入第三方APP
- jupiter 85 2.0
- DRGDIP分组云平台2.0版,自有知识产权
- Sublime text3 Version 3.22下载安装及注册
- 基于FCM模糊C均值的数据聚类算法matlab仿真
- ###pdf转化为图片###
- 春暖花开,给自己多一点甜蜜的关爱丨钛空舱
- 【Excel自动化办公Part2】:向某个格子里写入内容、append()插入行、在表格中插入公式、插入行和列、删除行和列、移动格子
- ICMP Destination unreachable(Host administratively prohibited)