构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。

如果没有显式的构造函数,编译器会给一个默认的构造函数,并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。

构造原则如下:

1. 如果子类没有定义构造方法,则调用父类的无参数的构造方法。

2. 如果子类定义了构造方法,不论是无参数还是带参数,在创建子类的对象的时候,首先执行父类无参数的构造方法,然后执行自己的构造方法。

3. 在创建子类对象时候,如果子类的构造函数没有显示调用父类的构造函数,则会调用父类的默认无参构造函数。

4. 在创建子类对象时候,如果子类的构造函数没有显示调用父类的构造函数且父类自己提供了无参构造函数,则会调用父类自己的无参构造函数。

5. 在创建子类对象时候,如果子类的构造函数没有显示调用父类的构造函数且父类只定义了自己的有参构造函数,则会出错(如果父类只有有参数的构造方法,则子类必须显示调用此带参构造方法)。

6. 如果子类调用父类带参数的构造方法,需要用初始化父类成员对象的方式,比如:

c++ 构造函数 继承相关推荐

  1. js继承之借用构造函数继承

    2018.5.27 今天本人又在查关于继承的问题,重新温习了一遍书,发现之前举的例子实际上不太清晰,故做调整. 我的上一篇文章介绍了,原型链继承模式.原型链继承虽然很强大,但是单纯的原型链模式并不能很 ...

  2. JavaScript面向对象——理解构造函数继承(类继承)

    JavaScript面向对象--理解构造函数继承(类继承) 构造函数式继承(类继承) function SuperClass(id) {// 引用类型公有属性this.books = ['JavaSc ...

  3. 23~49(构造函数+继承+类的本质+ES5中的新增方法)

    1 构造函数和原型 1.1 概述 在典型的OOP的语言中(如Java),都存在类的概念,类就是对象的模板,对象就是类的实例,但在ES6之前,JS中并没用引入类的概念. ES6,全称ECMAScript ...

  4. js继承-构造函数继承

    1.构造函数继承 <script>//1. 创建父类构造函数Parentfunction Parent(name) {this.name = name; // 实例基本属性 (该属性,强调 ...

  5. JS中对象的四种继承方式:class继承、原型链继承、构造函数继承、组合继承(构造函数和原型链继承的结合)

    前言 才发现之前没有对JavaScript中的继承做过总结,不过看得到是不少,接下来就对这几种继承方式做一下总结. class继承 class继承是ES6引入的标准的继承方式. ES6引入了class ...

  6. 【JS继承】JS继承之构造函数继承

    自我介绍:大家好,我是吉帅振的网络日志:微信公众号:吉帅振的网络日志:前端开发工程师,工作4年,去过上海.北京,经历创业公司,进过大厂,现在郑州敲代码. JS继承专栏 1[JS继承]什么是JS继承? ...

  7. 记录--JS精粹,原型链继承和构造函数继承的 “毛病”

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 先从面向对象讲起,本瓜认为:面向对象编程,它的最大能力就是:复用! 咱常说,面向对象三大特点,封装.继承.多态. 这三个特点,以" ...

  8. 初学JavaScript:原型继承/盗用构造函数继承/组合继承/寄生式继承/原型式继承/寄生组合式继承

    文章目录 继承 简介 1.原型链继承 默认原型 判断原型与实例间是否为继承关系 原型继承中的方法 原型链的破坏 原型继承的问题 2.盗用构造函数继承 简介 盗用构造函数继承的问题 3.组合继承 简介 ...

  9. javascript构造函数继承

    一.传统prototy继承 function Parent() {this.name = "thisIsName"; } Parent.prototype.sayName = fu ...

  10. 委托构造函数继承构造函数

    委托构造函数 委托构造函数的引入 小明和李华给外国友人写信从高中写到了考研写累了,突然想唱歌,为了方便这哥俩唱歌,咱写了个唱歌类给他们.这哥俩唱的不好,就限制他俩只能唱三句.因为有1~3句的选择,就写 ...

最新文章

  1. 互联网协议 — 使用 Wireshark 调试 HTTPS 及 HTTP/2 流量
  2. Python中如何把一个UTC时间转换为本地时间
  3. AI应用开发实战系列之三:手写识别应用入门
  4. C 库函数 - atoi() 字符串中的数字转换为一个整型
  5. 马云怒赞的93年网红区块链工程师,教你如何用3年时间实现逆袭
  6. linux之SQL语句简明教程---CONCATENATE
  7. 杰里之混响音效调试【篇】
  8. VirtualBox主机与虚拟机互相ping通的方法
  9. html怎么设置整体右对齐,如何在html中右对齐按钮
  10. Opencv相机校准之棋盘格标定
  11. boost::math::binomial_distribution用法的测试程序
  12. 如何制作网页-初学者入门HTML+CSS
  13. Windows Server 2008 使用“net use”挂载网络共享时“发生系统错误53”的解决方案
  14. Kafka结合Spark-streaming 的两种连接方式(AWL与直连)
  15. /和./和../的区别
  16. 端到端说话人验证系统中长度归一化的分析
  17. 感谢有你!Apache DolphinScheduler 项目 GitHub star 突破 8k
  18. 使用Arcpy合并多个GDB数据库
  19. (PTA数据结构与算法) 6-2 顺序表操作集 ——请告诉我什么是顺序表!!!
  20. Win11新电脑开机怎么跳过登录microsoft账户?

热门文章

  1. vue element-ui自定义表头,动态添加表头,新增行、新增列、删除行、删除列
  2. wxpython应用程序对象与顶级窗口_wxPython学习笔记(二)
  3. This关键字详细概述
  4. 物体随机飞溅运动! Cocos Creator!
  5. Vscode 调试 python
  6. 了解Git的一段时间
  7. SwiftUI 控件之Text 文本框显示古诗(含demo)
  8. 前端如何开发 APP
  9. Go :测试简单的布尔和数字常量(附完整源码)
  10. hive支持所有mysql语法_Hive sql 语法解读 | 学步园