首页 > 代码库 > 关于C#中派生类调用基类构造函数的理解
关于C#中派生类调用基类构造函数的理解
(1)当基类中没有自己编写的构造函数时,派生类默认条用基类的构造函数
(2)当基类中有自己编写的构造函数时,要在基类中添加无参的构造函数
Java代码
- 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指定基类的构造函数
Java代码
- 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();
- }
- }
注: 初始化的顺序是从基类到派生类。初始化时首先会调用基类的构造函数初始化基类,然后调用派生类的构造函数初始化派生类。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。