当前位置:首页 > C#学习

C#中类的继承小知识点

小道8年前 (2018-09-20)C#学习6066

类的构造实例化的过程:

一个子类的实例化先调用父类的构造函数,在调用子类的构造函数。

namespace 继承
{
    class Program
    {
        static void Main(string[] args)
        {
            男人 n = new 男人();//声明男人类的对象。
            Console.ReadKey();//按任意键退出。
        }
    }
    class 人  //人  类。
    {
        public 人()//默认的人类的构造函数
        {
            Console.WriteLine("人的默认构造函数。");//输出
        }
    }
    class 男人:人  // 继承人 类的 男人 类。
    {
        public 男人()//默认的男人类的构造函数
        {
            Console.WriteLine("男人的默认构造函数。");//输出
        }
    }
}

输出结果:

image.png


带参数的构造函数:

namespace 继承
{
    class Program
    {
        static void Main(string[] args)
        {
            男人 n = new 男人();//声明男人类的对象。
            Console.WriteLine("——————————————————");
            男人 nn = new 男人(18);//声明男人类的对象。
            Console.ReadKey();//按任意键退出。
        }
    }
    class 人  //人  类。
    {
        public int age;//全局字段
        public 人()//默认的人类的构造函数
        {
            Console.WriteLine("人的默认构造函数。");//输出
        }
        public 人(int a)//带参数的构造函数
        {
            age = a;//赋值
            Console.WriteLine("人的带参数的构造函数。年龄:{0}",age);//输出
        }
    }
    class 男人:人  // 继承人 类的 男人 类。
    {
        public 男人()//默认的男人类的构造函数
        {
            Console.WriteLine("男人的默认构造函数。");//输出
        }
        public 男人(int a)//带参数的构造函数
        {
            age = a;//赋值
            Console.WriteLine("男人类的带参数的构造函数。年龄:{0}",age);//输出
        }
    }
}

输出结果:

image.png

PS:使用带参数的构造函数会先调用父类的默认构造函数,在调用子类带参数的构造函数。


同时调用父类和子类的带参数的构造函数:

        ...
        public 男人(int a) : base(a)//在后面加上  : base(a)  就可以调用父类的带参数的构造函数。
        ...

输出结果:

image.png


同时调用父类默认构造函数和子类默认构造函数和子类带参数的构造函数:

        ...
        public 男人(int a) : this()//在后面加上  : this()  就可以调用父类的默认构造函数和子类默认构造函数。
        ...

输出结果:

image.png

扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://daobk.com/post/104.html

分享给朋友:

“C#中类的继承小知识点” 的相关文章

数组:​从一个整数数组中取出最大的整数。

数组:​从一个整数数组中取出最大的整数。

保存多个值。任意类型都可以声明数组。int[] nums = {5,3,8};//数组可以直接赋值。 int[] nums = new int[3];//也可以先声明数组 不赋值。   &…

函数的ref、out参数

函数的ref、out参数

函数参数默认是值传递的,也就是“复制一份”ref必须先初始化,因为是引用,所以必须先“有”,才能引用,而out则是内部为外部赋值,所以不需要初始化,而且外部初始化也没用。ref应用场景内部对外部的值进行改变,out则是内部为外部变量赋值,out一般用在函数有多个返回值的场所。  …

面向对象版聊天机器人

面向对象版聊天机器人

机器人有不同的名字、维护自己的FullLevel,可以SayHello(我叫***),可以喂食(Eat(int foodCount)),可以对它说话(Speak),对异常情况(错误的喂饭数字,喂的太多撑死了)进行处理,有两个机器人供选择,一开始通过1、2数字选择聊天机器人。  &…

静态成员和静态类

静态成员和静态类

全局变量。static类变量。不用new就能用的方法:static方法,static方法其实就是普通函数在static方法中可以调用其他static成员,但是不能调用非static成员。在非static方法中可以调用static成员。    class&nbs…