动手实验:继承条件下的构造方法调用

运行 TestInherits.java示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是否是第一句,影响重大!

是第一句的情况:

不是第一句的情况:

结论:通过 super 调用基类构造方法,必须是子类构造方法中的第一个语句。

不可变类的实例:Address.java

参看ExplorationJDKSource.java示例

此示例中定义了一个类A,它没有任何成员:

class A { },示例直接输出这个类所创建的对象

      public static void main(String[] args)    {

            System.out.println(new A());}

我们得到了一个奇特的运行结果:

反汇编:

前面示例中,main方法实际上调用的是:public void println(Object x),这一方法内部调用了String类的valueOf方法。valueOf方法内部又调用Object.toString方法:

public String toString() {

      return getClass().getName() +"@" +

      Integer.toHexString(hashCode());

}

hashCode方法是本地方法,由JVM设计者实现: public  native int hashCode();

我们来看一段代码(示例Fruit.java ):

注释掉toString方法之后:

去掉所有注释后:

结论:“+”运算中,当任何一个对象与一个String对象,连接时,会隐式地调用其toString()方法,默认情况下,此方法返回类名 @ + hashCode”。为了返回有意义的信息,子类可以重写toString()方法。

转载于:https://www.cnblogs.com/iloveblog/p/4936552.html

接口与继承动手动脑整理相关推荐

  1. JAVA07 接口与继承

    一  动手实验:继承条件下的构造方法调用 1)源代码 1 public class TestInherits { 2 3 public static void main(String[] args) ...

  2. java part.inlimen_java字符串加密及动手动脑

    字串加密: 请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想.程序流程图.源代码.结果截图. 设计思想:先输入一个字符串,调用toCharArray()函数将它转化为字符数组,在利 ...

  3. 完成课件中的动手动脑的或需要验证的相关内容。

    一.运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是 ...

  4. java用对话框输出计算结果_动手动脑及java程序之用消息框进行数的运算

    动手动脑自信成就人生 动手动脑1 ✿仔细阅读示例: EnumTest.java,运行它,分析运行结果? package demo; public class Test { public static ...

  5. JAVA课上动手动脑问题以及课后测试1,2总结

    课堂测试1      像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 "软件" 2    (1)题目避免重复 (2)可定制(数量/打印方式) 设计思路 1)产生两 ...

  6. 基类与接口混合继承的声明问题 [C#, Design] -Allen Lee's Magic

    Updated on Friday, November 19, 2004 Written by Allen Lee 1. 问题初现 今天,查看<接口继承的声明问题>一文的反馈,发现Ninp ...

  7. Java中实现接口与继承的区别

    ** Java中实现接口与继承的区别 ** 首先,先来了解一下什么是接口和继承.接口一般是使用interface来定义的.接口定义同类的定义类似,分为接口的声明和接口体,其中接口体由常量定义和方法定义 ...

  8. 第10章 接口、继承与多态----抽象类和接口

    一.抽象类 在解决实际问题时,一般将父类定义为抽象类,需要使用这个父类进行继承与多态处理.回想继承和多态原理,继承树中越是在上方的类越抽象,如:鸽子类继承鸟类.鸟类继承动物类等.在多态机制中,并不需要 ...

  9. Java进阶篇(一)——接口、继承与多态

    前几篇是Java的入门篇,主要是了解一下Java语言的相关知识,从本篇开始是Java的进阶篇,这部分内容可以帮助大家用Java开发一些小型应用程序,或者一些小游戏等等. 本篇的主题是接口.继承与多态, ...

最新文章

  1. MySQL 的性能(下篇)—— 性能优化方法
  2. 推荐一款高端大气上档次的在线作图工具
  3. STM32使用DMA从串口读可变长度数据到内存
  4. php单例模式的实例,PHP的单例模式的一个实例_php
  5. BZOJ 3720: Gty的妹子树 [树上size分块]
  6. 加密、解密以及Openssl建立私有CA
  7. c遗传算法的终止条件一般_Matlab2 :Matlab遗传算法(GA)优4~-r-具箱是基于基本操作 联合开发网 - pudn.com...
  8. python3转码python2_python2写的代码移植到python3后无法转码成中文文本,请大神指教,谢谢~...
  9. ICCV 2019 | 旷视研究院提出VANet:具备视角感知力的车辆重识别网络
  10. 小码农也有大梦想!人机猜拳java项目代码
  11. 《信息存储与管理(第二版):数字信息的存储、管理和保护》—— 2.1 应用...
  12. Kubernetes 小白学习笔记(21)--kubernetes的运维-管理Lable
  13. 苹果电脑上几款不错的cad绘图软件
  14. php微信开发计数,总结一个微信开发的过程实例
  15. 微电子 半导体 网址 一览表
  16. 找出大于200的最小质数
  17. c语言strtok用法详细解释
  18. 汽车各档爬坡度曲线matlab,基于MATLAB App Designer的汽车爬坡能力建模与仿真
  19. 刘强东最牛女助理任CHO:颜值不输奶茶妹妹,32岁成京东内部二号人物………...
  20. xquartz Firefox Error: cannot open display: localhost:14.0

热门文章

  1. 基于消息队列的分布式事务解决方案
  2. Java 泛型背后的原理是什么?
  3. 蚂蚁金服对研发高要求的领域建模能力是指什么?
  4. 为什么 Redis 默认 16 个库?90% 以上程序员不知道!
  5. switch多值匹配骚操作,带你涨姿势!
  6. 单日2000W+订单,如何忙中不错?美团外卖业务异常检测实践详解
  7. GO select用法详解
  8. 15.赋值运算符为什么返回类的引用?不是引用怎么办?
  9. html pie标签,css3pie怎么用?
  10. oracle执行减法,oracle时间的加法和减法