引论 :
构造器调用的层次结构带来了一个有趣的两难问题。如果在一个构造器的内部,同时调用正在构造的那个对象的某个动态绑定方法,那会发生什么情况呢?在一般的方法内部,我们可以想象会发生什么:动态绑定的调用是在运行期才被决定,因为对象无法知道它是属于方法所在的那个类,还是属于那个类的导出类。为保持一致性,大家也许会认为这应该发生在构造器内部。
但事情并非完全如此。如果要调用构造器内部的一个动态绑定方法,就要用到那个方法的被重载的定义。然而,产生的效果可能相当难于预料,并且可能造成一些难于发现的隐藏错误。从概念上讲,构造器的工作实际上是创建对象(这并非是一件平常的工作)。在任何构造器内部,整个对象可能只有部分形成——我们只知道基类对象已经进行初始化,但却不知道哪些类是从我们这里继承而来的。然而,一个动态绑定的方法调用却会向外深入到继承层次结构内部。它可以调用导出类里的方法。如果我们是在构造器内部这样做,那么我们可能会调用某个方法,而这个方法所操纵的成员可能还未进行初始化——这肯定是招惹灾难的倪端。

提问:
继承和组合之间有什么不同?
描述 Java 中的重载和重写?
Java 中,嵌套公静态类与顶级类有什么不同?
OOP 中的 组合聚合和关联有什么区别?
给我一个符合开闭原则的设计模式的例子?
抽象工厂模式和原型模式之间的区别?
Java 面试中其他各式各样的问题
嵌套静态类与顶级类有什么区别?
你能写出一个正则表达式来判断一个字符串是否是一个数字吗?
Java 中,受检查异常 和 不受检查异常的区别?
Java 中,throw 和 throws 有什么区别
Java 中,Serializable 与 Externalizable 的区别?
Java 中,DOM 和 SAX 解析器有什么不同?
说出 JDK 中的三个新特性?

Apache Software Foundation Thinking in Java:构造器调用的层次结构带来了一个有趣的两难问题相关推荐

  1. Apache Software Foundation Thinking in Java:只要仔细审视,两种方法的使用场合应该是相当明显的

    引论 : 对于继承可能会引发某种争论:继承应该只重载基类的方法(而并不添加在基类中没有的新方法)吗?如果这样做,就意味着导出类和基类是完全相同的类型,因为它们具有完全相同的接口.结果你可以用一个导出类 ...

  2. Caused by: java.lang.ClassNotFoundException: # Licensed to the Apache Software Foundation (ASF) unde

    问题: Caused by: java.lang.ClassNotFoundException: # Licensed to the Apache Software Foundation (ASF) ...

  3. 遇到问题---eclipse--java--tomcat运行web项目报错Licensed to the Apache Software Foundation (ASF) under one or m

    情况 有一个老的tomcat web项目 使用的是 springMVC的框架,需要放到k8s中运行,所以添加了spring boot的相关包,在本地使用eclipse的tomcat进行web调试时 报 ...

  4. java构造器调用构造器_java中构造器内部调用构造器实例详解

    可能为一个类写了多个构造器,有时可能想在一个构造器里面调用另外一个构造器,为了减少代码的重复,可用this关键字做到这一点. public class Flower { private String ...

  5. Apache Software Foundation Distribution Directory

    常用软件下载

  6. 用Java编写约分最简公式_一个有趣的算法问题:如何定义一个分数类

    一个来自于C++程序设计的经典问题.如何定义一个分数类,实现分数的约分化简,分数之间的加法.减法.乘法.除法四则运算? 1.初见 刚看到这道题的时候,第一感觉是挺简单的啊,就是基本的面向对象,定义对应 ...

  7. 【Java 28岁了】一个有趣的例子,再推荐一些经典好书(文末惊喜福利)

    文章目录 1 写在前面 2 C语言与Java语言的互相调用 2.1 C语言调用Java语言 2.2 Java语言调用C语言 3 友情推荐 4 更多分享 1 写在前面 众所周知,C语言和Java语言是两 ...

  8. java的子类调用构造器的顺序_深入剖析Java继承中的初始化与构造器调用关系

    声明:本文为牛旦教育原创,所有权保留,转载请注明来源. 一个对象有两件事:状态和行为. 类中的实例变量表示其对象的状态. 实例方法表示其对象的行为. 类的每个对象都保持自己的状态. 创建类的对象时,将 ...

  9. java静态初始化块无法直接调用,关于JAVA静态初始化块,初始化块,构造器调用顺序的有关问题...

    关于JAVA静态初始化块,初始化块,构造器调用顺序的问题 一个简单的关于初始化块,静态初始化块,构造器的执行顺序的小例子,请大家参考: 父类如下: package test.jamin; /** * ...

最新文章

  1. MM32F3277 MicroPython 实验板设计和软件测试
  2. 传递给后台的Json数据解析
  3. 【风控场景】互利网上数字金融典型场景: 网购运费险
  4. 小程序接口学习—开发接口
  5. java生产者消费者同步模式
  6. java日历制作日期不对_在我的代码中,为什么Java日期或日历中的月份日期不同? - java...
  7. python反编译class文件_反编译java class文件
  8. 正交试验设计例题及答案_SPSS正交试验设计及其方差分析
  9. 测试驱动开发心得体会
  10. matlab奈奎斯特图画法,振荡环节 奈奎斯特图和波特图的绘制
  11. O2O供应链系统架构设计
  12. 【测试】你的浏览器HOLD住HTML5吗?
  13. Gmail邮箱登陆问题解决方案
  14. Cocoa是什么???
  15. oracle迁移到人大金仓,Oracle迁移数据到人大金仓V8
  16. 浏览器关闭垃圾的百度热点推荐------简洁就是美
  17. 20121223-命令与征服全面变更
  18. 云服务,云服务商比较
  19. telnet 不是内部或外部命令
  20. 《Mining Quality Phrases from Massive Text Corpora》论文学习笔记

热门文章

  1. C语言文件详解(超级详细,记得收藏~~~)
  2. c语言没错误运行出现烫,C程序运行出现烫烫烫,怎么办啊急死了,求高手改进...
  3. C语言习题练习8--扫雷游戏
  4. 推荐大学生看的一些书
  5. Windows cmd命令
  6. 2020最新大厂(阿里头条百度快手美团滴滴猿辅导陌陌)Java开发岗位社招面试干货分享总结
  7. 恒压板框过滤实验数据处理_比价:宝鸡小型板框实验压滤机销售厂家,压滤机价格...
  8. 自己动手写一个jQuery插件(第二篇)
  9. 【CSS】用CSS绘制图标(图标大全)
  10. 微信小程序-使用云函数获取微信的openid