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

C#中类的继承小知识点

小道7年前 (2018-09-20)C#学习5459

类的构造实例化的过程:

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

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#中类的继承小知识点” 的相关文章

while语句:要求用户输入用户名和密码,只要不是admin、888888就一直提示要求重新输入。

while语句:要求用户输入用户名和密码,只要不是admin、888888就一直提示要求重新输入。

while语句:要求用户输入用户名和密码,只要不是admin、888888就一直提示要求重新输入。            Console.WriteLine("请输入用户…

枚举enum

枚举enum

确定数量、确定值的几个取值:东西南北、男女、上中下。和用字符串比起来,用枚举的好处就是限定了变量的取值范围,程序处理起来更方便。namespace 枚举//命名空间 {     enum xb { 男, 女…

面向对象版聊天机器人

面向对象版聊天机器人

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

对象的引用

对象的引用

int、decimal、bool、byte等基础类型(值类型)是传递拷贝;对象(引用类型)则是传递引用。(引用类型包括:类、数组、接口、string)因为基础类型不怎么占内存,而对象则比较占内存。    class Program  &n…