zoukankan      html  css  js  c++  java
  • 10.C# 构造函数

    1.构造函数

    构造函数是用来初始化对象的,只能由new运算符调用。构造函数与类同名,没有返回值,不能用void修饰,可以有public和private两种修饰符,当用private修饰时外界不能访问到这个构造函数。

    C#有一个无参的默认构造函数,如果需要做特别的初始化可以自己添加构造函数,如

    class DisplayClass{
            public DisplayClass(string displayString)
            {
                Console.WriteLine(displayString);
                Console.WriteLine();
            }
    
            public DisplayClass()//默认构造函数
            { 
                
            }
        }

    2.构造函数执行顺序

    类继承时子类需要调用父类的构造函数才能正确初始化父类,如果子类没有显式调用父类的构造函数,系统会调用父类的默认构造函数,可以使用构造函数初始化器指定需要调用的父类构造函数,如下使用base调用父类的构造函数

        class BaseA
        {
          
            public BaseA()
            {
                Console.WriteLine("基类构造方法被调用");
            }
    
            public BaseA(string baseString)
            {
                Console.WriteLine(baseString);
            }
        }
    
        class DriveB : BaseA
        {
           
            public DriveB():base("基类构造方法被调用")
            {
                Console.WriteLine("继承类构造方法被调用");
            }
        }

    也可以使用this调用当前类其他构造函数

     class Person
        {
            int age;
            string name;
    
            public Person()
            { 
                
            }
    
            public Person(int age)
            {
                this.age = age;
            }
    
            public Person(int age, string name):this(age)
            {
                this.name = name;
            }
    
        }

    当有继承关系时构造函数的调用顺序 :System.Object的构造函数-> 基类的构造函数->子类的构造函数,因为所有类都是继承Object类的,所以最先调用Object类的构造函数

  • 相关阅读:
    Graphviz安装配置
    固定ip
    机器学习基础
    研究生入学感悟
    复试临时练习
    复试临时练习
    Dev-C++回文数遇到的小麻烦
    单例模式
    工厂方法模式
    Spark的checkpoint详解
  • 原文地址:https://www.cnblogs.com/lidaying5/p/10511100.html
Copyright © 2011-2022 走看看