`

关于C#中派生类调用基类构造函数的理解

    博客分类:
  • 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#中派生类调用基类构造函数用法,实例分析了派生类调用基类构造函数的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    深入解析C++中派生类的构造函数

    值得注意的是,如果基类没有默认构造函数,而在派生类构造函数中没有显式调用任何基类构造函数,编译器会尝试调用默认构造函数,这可能导致编译错误。因此,定义派生类构造函数时应确保明确指定基类构造函数,或者...

    c++派生类及继承实验报告.doc

    本实验的目的是为了掌握C++语言中派生类和继承的使用,包括派生类的声明方法、派生类构造函数的定义方法、基类成员在派生类中的访问属性、继承方式下构造函数和析构函数的执行顺序及构造规则、虚基类在解决二义性...

    由Person类派生出学生类Student和教师类Teacher

    `Person`类具有两个私有成员变量:`id`(标识符)和`name`(姓名),以及两个公有成员函数:构造函数和一个通用的`show`函数。构造函数用于初始化`id`和`name`,而`show`函数用于显示`Person`对象的基本信息。 `...

    c++ 习题 派生类和继承

    以上是对C++中派生类和继承相关知识点的详细阐述,涵盖了派生方式、成员访问控制、构造与析构函数的执行、类型兼容、虚基类的作用以及继承与组合的对比等关键点。理解这些概念对于编写和维护C++程序至关重要。

    继承与派生声明一个哺乳动物类声明一个shap(形状)基类,

    通过这个实验,学生可以深入理解面向对象编程中的继承概念,以及如何利用派生类扩展基类的功能。同时,他们还能学习到如何处理几何问题,运用数学知识解决实际问题。这样的实践有助于提高编程能力和问题解决技巧。

    c++派生类与继承实验报告.pdf

    在C++编程语言中,派生类和继承是面向对象编程的重要概念,它们允许我们创建新的类,这些类可以从已有的类...通过这样的实验,学生能够深入理解C++中派生类和继承的概念,以及如何在实际编程中运用这些概念解决问题。

    彻底搞懂python继承

    如果需要在派生类中调用基类的方法,可以使用内置函数super()或者通过“基类名.方法名()”的方式来实现这一目的。 Python支持多继承,如果父类中有相同的方法名,而在子类中使用时没有指定父类名,则Python解释器将...

    用c++ 定义一个车(Vehicle)基类,有Run,Stop等成员函数,由此派生出自行车(bicycle)类,汽车(motorcar)

    根据给定的信息,本文将详细解释如何在C++中定义一个`Vehicle`基类,并从中派生出`bicycle`(自行车)和`motorcar`(汽车)子类,以及进一步从这两个子类中派生出`motorcycle`(摩托车)类。我们将深入探讨面向对象...

    C++期末复习2

    不同基类构造函数之间需要用逗号`,`分隔。 #### 七、派生类的特性 - 一个派生类可以作为另一个派生类的基类。 - 派生类至少有一个基类。 - 派生类的成员除了它自己的成员外,还包含了它的基类成员。 - 派生类中...

    解析C++中派生的概念以及派生类成员的访问属性

    虚函数允许通过基类指针或引用来调用派生类的对应函数,实现多态性。 总的来说,C++的派生和继承机制提供了强大的代码复用和设计灵活性,使得程序员可以构建复杂、层次分明的类体系。然而,需要注意的是,不当的...

    C++选择题练习.docx

    在C++编程语言中,继承是一种重要的特性,它允许创建一个新的类(派生类)从已存在的类(基类)中派生出来,以便复用和扩展基类的功能。题目中涉及了几个关键知识点: 1. **继承的访问权限**: - 公有继承(public...

    C++课程实验五代码大全.zip

    其中研究生类从学生类继承过来,分别采用公有继承与私有继承、保护继承三种方式,程序中包括输入数据的函数,运行时输入其5项的值,程序应输出5个数据值。 答案:略 2、(1) 声明一个基类Animal,有私有整型成员...

    浅谈C++中派生类对象的内存布局

    如果基类没有虚函数,那么派生类与基类具有相同功能时不会引入额外的性能开销。例如,基类`A`包含一个`int`和一个`char`,在内存中可能是4字节的`int`、1字节的`char`和3字节的填充以满足对齐要求,总共8字节。当...

    c++的课件老师上课用的!对大家会有帮助的!

    继承允许创建新的类(派生类)从已存在的类(基类)中派生出来,继承基类的属性和行为。这有助于代码复用和实现类的层次结构。 10. **多态性**: 多态性使得同名的函数在不同情况下有不同的行为,可以是函数重载...

    The Annotated C++ Reference Manual(ARM)-Ch10

    本章主要介绍了C++中派生类的概念及其相关特性,包括不同类型的继承、构造函数与析构函数的处理、虚基类的应用以及虚函数与多态性的实现。通过这些知识点的学习,我们可以更好地理解和运用面向对象编程的基本原则,...

    C++ 人事管理系统(实验)

    ⑸从Graduate类和Teacher类派生出助教生类TA,无新的属性。设计该类时注意虚基类的使用,注意重载相应的成员函数。 二、要求: 1.用多文件方式编程(建立工程),共有6个类(6个cpp,6个h),加上main,共13个文件 2...

Global site tag (gtag.js) - Google Analytics