Java使用内部类的意义
Java中的内部类感觉很奇怪,一个类中还要再嵌套一个类。为什么要这样做呢?
内部类提供了一个类中实现同一接口的多次机会。
一般情况下,在一个普通类中,是没有办法将一个方法写两遍,还能表达不同意思的,而内部类可以很好地实现这一点。提供一个实现多重继承的思路
Java一个子类只能继承单一父类,没有办法实现多重继承,而使用内部类可以一定程度解决这个问题。比如,你不能同时又是一个狗又是一个按钮,但有的时候你需要这样做。Dog可以继承Animal类,然后可以创建一个内部类来代表按钮的行为,因此有需要的时候Dog就可以派出内部类来代表按钮。也就是说,Dog虽然不能x.takeButton(this)
但是可以x.takeButton(new DogInnerButton())
参考资料
《Head First Java》
Java使用内部类的意义相关推荐
- 反射-获取java私有内部类反射类型、私有字段
获取JAVA私有内部类反射类型 方式一 Class.forName("外部类完整路径$内部私有类类名"); 方式二 通过获取对应私有内部类的字段而获取 完整的类名 Class.fo ...
- java使用内部类的好处及其初始化
java使用内部类的原因 每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响 java内部类初始化 ForeCatalog foreCa ...
- java继承a mya new c,“内部类” 大总结(Java),内部类总结java
"内部类" 大总结(Java),内部类总结java (本文整理自很久以前收集的资料(我只是做了排版修改),作者小明,链接地址没有找到,总之感谢,小明) 内部类的位置: 内部类可以作 ...
- Java — 内部类存在意义
一.我们为什么要用内部类? (1)解决多重继承 为什么要使用内部类?在<Think in java>中有这样一句话:使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现, ...
- java 内部接口 内部类_Java的接口中中添加内部类,甚至实现外围接口的内部类,意义是什么?...
首先开篇第一句:An interface declaration introduces a new reference type whose members are classes, interfac ...
- java 内部类 加载_举例讲解Java的内部类与类的加载器
内部类 class A { //Inner1 要在 A 初始化后 才能使用,即要被A的对象所调用 class Inner1 { int k = 0; // static int j = 0; //A加 ...
- java中final的意义
转载自 https://blog.csdn.net/hikvision_java_gyh/article/details/8964541 1.如果一个数据既是static又是final,那么它会拥有一 ...
- Java学习--内部类
以下复制于 https://www.cnblogs.com/dolphin0520/p/3811445.html 作者:Matrix海子 出处:http://www.cnblogs.com/dolp ...
- java 函数内部类_java 内部类详解 转
classOuter {classInner { } } (二) 内部类的访问规则 A:可以直接访问外部类的成员,包括私有 B:外部类要想访问内部类成员,必须创建对象 (三) 内部类的分类 ...
最新文章
- 零样本风格迁移:多模态CLIP文本驱动图像生成
- The request was denied by service delegate (SBMainWorkspace) for reason: Uns
- Java 自定义 ClassLoader 实现 JVM 类加载
- oracle取两条sql查询结果的差集,并集,交集
- python清洗数据用什么包_格式化和清洗数据的Python工具包
- spring源码阅读(1/4) - Bean生成
- win7系统电脑d盘不见了的解决方法
- 更喜欢使用Stream到byte[]
- 小菜学Flex2(二 currentState初步使用)
- 计算机考试用户名和密码,计算机模块考试忘记了用户名和密码怎么办
- 计算机字体颜色太浅,我的打印机打字太淡,如何调,打印的字就能够颜色
- 网吧计费系统数据库修复/网吧收银系统数据库恢复
- 云通俗的讲是一种基于网络的计算机,云计算通俗讲义(pdf+epub+mobi+txt+azw3)
- 全球气象数据网站(大气、海洋数据应有尽有)
- Python数据可视化案例:分析微信公众号数据
- JS字符(字母)与ASCII码转换
- Python3学习笔记(二)by Learn Python 3 the HARD WAY
- 芯片技术如此难搞如此复杂,韩国人是怎么会的?
- JOL:查看Java 对象布局、大小工具
- mac终端远程登陆服务器
热门文章
- 在WINCE5.0中应用CMD(比如运行PING命令)
- 显示android缓存文件,android – 使用ACTION_VIEW在缓存目录中打开文件
- minijson使用_java layuimini使用json传值
- python的time库有哪些方法_Python的time模块中的常用方法整理
- python 编译器重构_Python之父考虑重构Python解释器
- UWP 推荐 - 限时免费的RSS阅读器《RSS 追踪》登录 Windows 10
- Fedora 16 正式版专题
- proc下kcore是什么文件
- SQL Server数据库开发的二十一条军规
- const 的学习(转载)