子类可以通过super关键字来显式地调用父类的构造函数。

当父类没有提供无参数的构造函数时,子类的构造函数中必须显式的调用父类的构造函数;

如果父类提供了无参数的构造函数,此时子类的构造函数就可以不显式的调用父类的构造函数,默认调用父类的无参构造函数。

package com.bjut.StudyTest;class Person {public Person() {System.out.println("Base has no args.");}public Person(String temp) {System.out.println("Base:" + temp);}
}class Student extends Person {public Student() {super("a");System.out.println("Student has no args.");}public Student(String temp) {System.out.println("Student:" + temp);}
}public class TestConstruction {public static void main(String[] args) {Person p = new Student(); // 先调用父类的构造函数,显示调用指定的父类构造函数。Student s = new Student("b"); // 先调用父类的构造函数,默认调用父类无参构造函数。}}

输出:

Base:a
Student has no args.
Base has no args.
Student:b

当有父类时,在实例化对象时会先执行父类的构造函数,然后执行子类的构造函数。

(补充)java 程序初始化工作执行的顺序:

父类静态变量 -> 父类静态代码块 -> 子类静态变量 -> 子类静态代码块

-> 父类非静态变量 -> 父类非静态代码块 -> 父类构造函数

-> 子类非静态代码块 -> 子类非静态变量 -> 子类构造函数

Java构造函数之调用父类构造函数相关推荐

  1. 23.C++- 继承的多种方式、显示调用父类构造函数、父子之间的同名函数、virtual虚函数...

     上章链接: 22.C++- 继承与组合,protected访问级别 继承方式 继承方式位于定义子类的":"后面,比如: class Line : public Object // ...

  2. java子类要调用父类的无参构造函数

    如果子类要调用父类的无参构造函数,则通过super()调用来实现. 子类的每一个构造方法都必须显式或隐式调用父类的一个构造方法. 如果不显式调用, 则系统隐式调用super(),即父类的无参构造方法( ...

  3. Java继承,子类默认在构造函数中用super()调用父类构造函数

    1.子类继承父类的方法属性,并重写父类的方法,子类修饰符不能比父类方法的修饰符的范围狭窄. 2.子类必须在构造函数中使用super()来调用父类的构造函数 说明:1.父类没有写构造函数(系统默认有一个 ...

  4. C++入门经典-例8.3-子类显示调用父类构造函数

    1:当父类含有带参数的构造函数时,创建子类的时候会调用它吗?答案是通过显示方式才可以调用. 无论创建子类对象时调用的是那种子类构造函数,都会自动调用父类默认构造函数.若想使用父类带参数的构造函数,则需 ...

  5. Java里子类调用父类构造方法问题

    在Java中,子类的构造过程中,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的? 答案如下: 当你new一个子类对象的时候,必须首先要new一个父类的 ...

  6. C#从构造函数中调用其他构造函数

    有时,在一个类中有几个构造函数,以容纳某些可选参数,这些构造函数包含一些共同的代码.例如,如下情况: Class Car {private string _description;private in ...

  7. 构造函数的调用场景--构造函数与拷贝构造函数、移动构造函数之辨

    在Scott Meyers的著作<Effective C++>条款5中,明确指出要"了解C++默默编写并调用哪些函数".这里通过一个简短的C++代码,阐述哪些场景调用构 ...

  8. python调用父类构造函数需要放在第一句吗_Python继承和调用父类构造函数

    这是我正在Python中做的: class BaseClass: def __init__(self): print 'The base class constructor ran!' self.__ ...

  9. 关于Java中子类调用父类方法

    当一个类继承于另一个类,子类中没有父类的方法时.用子类的对象调用方法时,会首先在子类中查找,如果子类中没有改方法,再到父类中查找. 当一个方法只在父类中定义时,调用该方法时会使用父类中的属性.  如果 ...

最新文章

  1. MPB:山大倪金凤组-黄翅大白蚁肠道放线菌的分离与培养
  2. 代码审计之代码执行注入
  3. 2017年度盘点:15个最流行的GitHub机器学习项目 By 机器之心2017年12月21日 15:23 在本文中,作者列出了 2017 年 GitHub 平台上最为热门的知识库,囊括了数据科学、机
  4. 纪念第一次青海湖之行泡汤
  5. android JNI层线程回调Java函数
  6. maple 假设_Maple常用计算命令..
  7. 2019-02-23-算法-进化
  8. Envi 4.7 破解安装及下载(转)
  9. express与express-art-template两者相结合使用方法
  10. 第5章 set命令详解
  11. 9.3. where 优化
  12. 《树莓派Python编程入门与实战(第2版)》——2.2 使用Raspbian命令行
  13. IEEE802.15.4、ZigBee、ZigBee协议栈、Zstack、ZigBee联盟、CC2530、IAR的关系?
  14. DSP程序nbsp;调试总结
  15. 服装企业为什么要用湖州管家婆ERP管理软件?
  16. JS设置Cookie过期时间
  17. Leetcode592. 分数加减
  18. dfuse API 添加新分类查询,为您提供更多细化的搜索
  19. Web全栈工程师修养
  20. 浅谈社群运营的2种抽奖玩法

热门文章

  1. Android 泽宇高德导航驾车规划路线
  2. 《纪念碑谷》(Monument Valley) 系列游戏的空间结构是如何设计的?
  3. gray code java_格雷码Gray Code详解
  4. 用java设计一个文件查重程序,输入两个文本文件,输出两个文本文件的重复率(最长公共子序列的应用)...
  5. es文件浏览器怎么开ftp服务器,es文件浏览器怎么开ftp服务器
  6. 端午节主题PPT模板
  7. tplink 2.4g弱信号剔除_如何区分2.4G和5G路由器之间的区别?2.4G和5G路由器那个更好?...
  8. 菜鸟推荐!海量3D模型、轻松动画绑定。这个网站你要是不知道就亏了
  9. gmp计算机软件系统分类原则,新版GMP对自动化设备、计算机系统软件的验证要求...
  10. html制作阅读界面,用shiny制作html界面