当前位置: 首页 > news >正文

继承中的构造函数

基本概念

特点

当申明一个子类对象时,先执行父类的构造函数,再执行子类的构造函数。

注意:

1.父类的无参构造,很重要。

2.子类可以通过base关键字,代表父类调用父类构造。

继承中构造函数的执行顺序

父类的父类的构造——>……父类构造——>……——>子类构造

class GameObject
{public GameObject(){Console.WriteLine("GameObject的构造函数");}
}
class Player:GameObject
{public Player(){Console.WriteLine("Player的构造函数");}
}
class MainPlayer : Player
{public MainPlayer(){Console.WriteLine("MainPlayer的构造函数");}
}

父类的无参构造函数

子类实例化时,默认自动调用的是父类的无参构造,所以如果父类无参构造被顶掉,会报错。

class Father
{//public Father()//{//}public Father(int i){Console.WriteLine("Father构造");}
}

通过base调用指定父类构造

class Son:Father
{public Son(int i) : base(i){Console.WriteLine("Son的一个参数的构造");}public Son(int i, string str):this(i){Console.WriteLine("Son的两个参数的构造");}
}

总结

继承中的构造函数

特点

执行顺序是:先执行父类的构造函数,再执行子类的,从老祖宗开始,依次一代一代向下执行。

父类中的无参构造函数,很重要

如果被顶掉,子类中就无法默认调用无参构造了。

解决方法:

1.始终保持申明一个无参构造。

2.通过base关键字 调用指定父类的构造。

注意:

区分this和base的区别。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Qt】之【Bug】大量出现“未定义的标识符”问题
  • 一种非凸全变差正则化的信号降噪方法(以模拟信号和轴承振动信号为例,MATLAB)
  • Typora failed to export as pdf. undefined
  • Qt时间日期处理与定时器使用总结
  • 如何在Java中使用Elasticsearch
  • uniapp + vite中 uni.scss 使用 /deep/ 不生效(踩坑记录三)
  • Java面试题:sql优化
  • PHP框架Symfony详解
  • mxd的地图文件 像百度地图那样在vue页面上展示出来
  • JS滚动时显示元素
  • Vuetify3:隐藏超出的文字
  • Python正则表达式的入门用法(上)
  • 快速上手文心一言指令:解锁AI交互新体验
  • 【linux/shell】shell中使用for循环读取数据
  • three.js利用着色器实现波浪效果
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • Angular 2 DI - IoC DI - 1
  • AWS实战 - 利用IAM对S3做访问控制
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • emacs初体验
  • gops —— Go 程序诊断分析工具
  • js中forEach回调同异步问题
  • Making An Indicator With Pure CSS
  • Median of Two Sorted Arrays
  • opencv python Meanshift 和 Camshift
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Redis字符串类型内部编码剖析
  • Vue学习第二天
  • 搞机器学习要哪些技能
  • ​批处理文件中的errorlevel用法
  • # C++之functional库用法整理
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #NOIP 2014#Day.2 T3 解方程
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)大型网站架构演变和知识体系
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转载)深入super,看Python如何解决钻石继承难题
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET Core 2.1路线图
  • .NET Framework .NET Core与 .NET 的区别
  • .net framework profiles /.net framework 配置
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET/C# 使用 SpanT 为字符串处理提升性能