栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

C# 子类构造函数base的用法

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#  子类构造函数base的用法

子类继承基类,生成实例时,会先跑基类的构造函数,再跑子类的构造函数

    class Program
    {
        public static void Main(string[] args)
        {
            ClassA clsA = new ClassA();

            Console.ReadKey();
        }
    }

    public class Base
    {
        public Base()
        {
            Console.WriteLine("Base");
        }
    }

    public class ClassA : Base
    {
        public ClassA()
        {
            Console.WriteLine("ClassA");
        }
    }

结果如下:

然而在C#的类里,一个类的构造函数并不是只限一个。当基类有多个构造函数的时候可以使用base关键词给子类的构造函数选择一个基类的构造函数。当子类构造函数不写base的时候,默认为base(),直接继承基类的无参构造函数。

class Program
    {
        public static void Main(string[] args)
        {
            ClassA clsA = new ClassA();
            Console.WriteLine();
            ClassA clsA1 = new ClassA(1);
            Console.WriteLine();
            ClassA clsA2 = new ClassA(1,2);
            Console.WriteLine();
            ClassA clsA3 = new ClassA(1,"1");
            Console.WriteLine();
            ClassA clsA4 = new ClassA(1L);
            Console.WriteLine();
            ClassA clsA5 = new ClassA(1f);

            Console.ReadKey();
        }
    }

    public class Base
    {
        public Base()
        {
            Console.WriteLine("Base");
        }

        public Base(int a)
        {
            Console.WriteLine("Base int a");
        }

        public Base(string a)
        {
            Console.WriteLine("Base string a");
        }
    }

    public class ClassA : Base
    {
        public ClassA()
        {
            Console.WriteLine("ClassA");
        }

        public ClassA(int a):base(a)
        {
            Console.WriteLine("ClassA int a");
        }

        public ClassA(int a, int b) : base(a)
        {
            Console.WriteLine("ClassA int a int b");
        }

        public ClassA(int a, string b) : base(b)
        {
            Console.WriteLine("ClassA int a string b");
        }

        public ClassA(long a) : base()
        {
            Console.WriteLine("ClassA long a");
        }

        public ClassA(float a)
        {
            Console.WriteLine("ClassA float a");
        }
    }

结果如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/909511.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号