关于C#中派生类调用基类构造函数的理解
(1)当基类中没有自己编写的构造函数时,派生类默认条用基类的构造函数
(2)当基类中有自己编写的构造函数时,要在基类中添加无参的构造函数
- public class MyBaseClass
- {
- public MyBaseClass() { }
- public MyBaseClass(int i)
- {
- Console.WriteLine("我是基类带一个参数的构造函数");
- }
- }
- public class MyDerivedClass : MyBaseClass
- {
- public MyDerivedClass() : {
- Console.WriteLine("我是子类无参构造函数");
- }
- public MyDerivedClass(int i) {
- Console.WriteLine("我是子类带一个参数的构造函数");
- }
- public MyDerivedClass(int i, int j) {
- Console.WriteLine("我是子类带二个参数的构造函数");
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- MyDerivedClass m = new MyDerivedClass();
- }
- }
(3)在基类中有自己编写的构造函数并且在基类中没有添加无参的构造函数时,要在派生类中是用Base指定基类的构造函数
- public class MyBaseClass
- {
- public MyBaseClass(int i)
- {
- Console.WriteLine("我是基类带一个参数的构造函数");
- }
- }
- public class MyDerivedClass : MyBaseClass
- {
- public MyDerivedClass() : base(1)//使用Base指定基类中的构造函数
- {
- Console.WriteLine("我是子类无参构造函数");
- }
- public MyDerivedClass(int i) : base(i)
- {
- Console.WriteLine("我是子类带一个参数的构造函数");
- }
- public MyDerivedClass(int i, int j) : base(i)
- {
- Console.WriteLine("我是子类带二个参数的构造函数");
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- MyDerivedClass m = new MyDerivedClass();
- }
- }
注: 初始化的顺序是从基类到派生类。初始化时首先会调用基类的构造函数初始化基类,然后调用派生类的构造函数初始化派生类。
关于C#中派生类调用基类构造函数的理解的更多相关文章
- C#中派生类调用基类构造函数用法分析
这里的默认构造函数是指在没有编写构造函数的情况下系统默认的无参构造函数 1.当基类中没有自己编写构造函数时,派生类默认的调用基类的默认构造函数例如: ? 1 2 3 4 5 6 7 8 9 10 11 ...
- 转 关于C#中派生类调用基类构造函数的理解
关于C#中派生类调用基类构造函数的理解 .c#class 本文中的默认构造函数是指在没有编写构造函数的情况下系统默认的无参构造函数 1. 当基类中没有自己编写构造函数时,派生类默认的调用 ...
- C#在派生类中调用基类成员
一.在派生类中调用基类成员 在C#的派生类中,我们可以使用base关键字调用基类中的公有或者受保护成员.这些成员只能是构造函数.实例方法或者实例属性. base关键字调用基类成员的语法格式如下: ba ...
- 关于MFC中重载函数是否调用基类相对应函数的问题
在重载CDialog的OnInitDialog()函数的时候,在首行会添加一句:CDialongEx::OnInitDialog();语句,这是为什么呢?什么时候添加,什么时候不添加? 实际上,我们在 ...
- C++中派生类使用基类成员的问题
在C++中,派生类在定义构造函数时,会调用基类构造函数首先完成基类部分的构造: class Derive : public Base { public: Derive(string nam, int ...
- c++中派生类对基类成员的三种访问规则(转)
C++中派生类对基类成员的访问形式主要有以下两种:1.内部访问:由派生类中新增成员对基类继承来的成员的访问.2.对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问.今天给大家介绍在3中 ...
- c++ 派生类向基类转换的可访问性
对于c++面向对象一直很疑惑,这次决定下功夫把它弄明白 一.派生类和基类之间的类型转换 首先理解,派生类含有基类的所有成分,只不过有些就算在派生类的成员函数也不能访问而已. (1)派生类和基类的自动转 ...
- 从零开始学C++之继承(二):继承与构造函数、派生类到基类的转换
一.不能自动继承的成员函数 构造函数 析构函数 =运算符 二.继承与构造函数 基类的构造函数不被继承,派生类中需要声明自己的构造函数. 声明构造函数时,只需要对本类中新增成员进行初始化,对继承来的基类 ...
- c++——派生类和基类转换(类型兼容性原则)
基类也叫父类,派生类也叫子类. 类之间的继承关系继承关系是类之间的父子关系. 继承关系的特点如下:A. 子类拥有父类的所有属性和行为B. 子类也是一种特殊的父类C. 子类对象可以当父类对象使用D. 子 ...
随机推荐
- JavaScript 教程学习进度备忘
书签:"JavaScript 课外书"即“JS 教程”底部的“马上开始学习 JavaScript 高级教程吧 !”链接跳过,它属于高级教程:另外跳过的内容有待跟进 ________ ...
- 基于OSGI.Net的图形界面系统
在2013年的十月份有幸接触了osgi.net和iopenworks的创始人,了解和学习的插件式开发,开始了后台数据的处理生涯. 第一个有图形界面的系统——智能农业的环境监测系统,其实在这个系统中所有 ...
- WebGoat学习——SQL注入(SQL Injection)
SQL注入(SQL Injection) 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.攻击者通过web请求提交带有影响正 ...
- MFC知识点(DDX_Control 与 DDX_Text ,ON_COMMAND和ON_MESSAGE)
1.DDX_Control 与 DDX_Text 区别 DDX_TEXT()的作用可以理解为把字符串变量和控件的文本(WindowText)关联起来, DDX_Control()的作用可以理解为把变量 ...
- Linux系统github使用
命令行下使用: 1.检查ssh key cd ~/.ssh 如果提示"No such file or directory",则需要创建一个ssh key. 2.创建ssh key. ...
- Warning: $HADOOP_HOME is deprecated.解决方法
方式1(不推荐):注释hadoop-config.sh中的 if [ "$HADOOP_HOME_WARN_SUPPRESS" = "" ] && ...
- Xcode升级后插件失效的原理与修复办法
转载:http://joeshang.github.io/2015/04/10/fix-xcode-upgrade-plugin-invalid/ Xcode 的插件大大丰富了 Xcode 的功能,而 ...
- dom 学习的开始~简单留言1
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- permission denied部署django 遇到没有python_egg_cache的问题解决
检查/etc/httpd/logs/error_log,看是否有如下错误: [Errno 13] Permission denied: '/var/www/.python-eggs' 这时候需要编辑“ ...
- Python使用UUID库生成唯一ID(转)
原文:http://www.cnblogs.com/dkblog/archive/2011/10/10/2205200.html 资料: Python官方Doc:<20.15. uuid — U ...