Java中的内部类感觉很奇怪,一个类中还要再嵌套一个类。为什么要这样做呢?

  • 内部类提供了一个类中实现同一接口的多次机会。
    一般情况下,在一个普通类中,是没有办法将一个方法写两遍,还能表达不同意思的,而内部类可以很好地实现这一点。

  • 提供一个实现多重继承的思路
    Java一个子类只能继承单一父类,没有办法实现多重继承,而使用内部类可以一定程度解决这个问题。比如,你不能同时又是一个狗又是一个按钮,但有的时候你需要这样做。Dog可以继承Animal类,然后可以创建一个内部类来代表按钮的行为,因此有需要的时候Dog就可以派出内部类来代表按钮。也就是说,Dog虽然不能x.takeButton(this)但是可以x.takeButton(new DogInnerButton())

参考资料

《Head First Java》

Java使用内部类的意义相关推荐

  1. 反射-获取java私有内部类反射类型、私有字段

    获取JAVA私有内部类反射类型 方式一 Class.forName("外部类完整路径$内部私有类类名"); 方式二 通过获取对应私有内部类的字段而获取 完整的类名 Class.fo ...

  2. java使用内部类的好处及其初始化

    java使用内部类的原因 每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响 java内部类初始化 ForeCatalog foreCa ...

  3. java继承a mya new c,“内部类” 大总结(Java),内部类总结java

    "内部类" 大总结(Java),内部类总结java (本文整理自很久以前收集的资料(我只是做了排版修改),作者小明,链接地址没有找到,总之感谢,小明) 内部类的位置: 内部类可以作 ...

  4. Java — 内部类存在意义

    一.我们为什么要用内部类? (1)解决多重继承 为什么要使用内部类?在<Think in java>中有这样一句话:使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现, ...

  5. java 内部接口 内部类_Java的接口中中添加内部类,甚至实现外围接口的内部类,意义是什么?...

    首先开篇第一句:An interface declaration introduces a new reference type whose members are classes, interfac ...

  6. java 内部类 加载_举例讲解Java的内部类与类的加载器

    内部类 class A { //Inner1 要在 A 初始化后 才能使用,即要被A的对象所调用 class Inner1 { int k = 0; // static int j = 0; //A加 ...

  7. java中final的意义

    转载自 https://blog.csdn.net/hikvision_java_gyh/article/details/8964541 1.如果一个数据既是static又是final,那么它会拥有一 ...

  8. Java学习--内部类

    以下复制于  https://www.cnblogs.com/dolphin0520/p/3811445.html 作者:Matrix海子 出处:http://www.cnblogs.com/dolp ...

  9. java 函数内部类_java 内部类详解 转

    classOuter {classInner { } } (二) 内部类的访问规则 ​ A:可以直接访问外部类的成员,包括私有 ​ B:外部类要想访问内部类成员,必须创建对象 (三) 内部类的分类 ​ ...

最新文章

  1. 零样本风格迁移:多模态CLIP文本驱动图像生成
  2. The request was denied by service delegate (SBMainWorkspace) for reason: Uns
  3. Java 自定义 ClassLoader 实现 JVM 类加载
  4. oracle取两条sql查询结果的差集,并集,交集
  5. python清洗数据用什么包_格式化和清洗数据的Python工具包
  6. spring源码阅读(1/4) - Bean生成
  7. win7系统电脑d盘不见了的解决方法
  8. 更喜欢使用Stream到byte[]
  9. 小菜学Flex2(二 currentState初步使用)
  10. 计算机考试用户名和密码,计算机模块考试忘记了用户名和密码怎么办
  11. 计算机字体颜色太浅,我的打印机打字太淡,如何调,打印的字就能够颜色
  12. 网吧计费系统数据库修复/网吧收银系统数据库恢复
  13. 云通俗的讲是一种基于网络的计算机,云计算通俗讲义(pdf+epub+mobi+txt+azw3)
  14. 全球气象数据网站(大气、海洋数据应有尽有)
  15. Python数据可视化案例:分析微信公众号数据
  16. JS字符(字母)与ASCII码转换
  17. Python3学习笔记(二)by Learn Python 3 the HARD WAY
  18. 芯片技术如此难搞如此复杂,韩国人是怎么会的?
  19. JOL:查看Java 对象布局、大小工具
  20. mac终端远程登陆服务器

热门文章

  1. 在WINCE5.0中应用CMD(比如运行PING命令)
  2. 显示android缓存文件,android – 使用ACTION_VIEW在缓存目录中打开文件
  3. minijson使用_java layuimini使用json传值
  4. python的time库有哪些方法_Python的time模块中的常用方法整理
  5. python 编译器重构_Python之父考虑重构Python解释器
  6. UWP 推荐 - 限时免费的RSS阅读器《RSS 追踪》登录 Windows 10
  7. Fedora 16 正式版专题
  8. proc下kcore是什么文件
  9. SQL Server数据库开发的二十一条军规
  10. const 的学习(转载)