c#继承(new base)的使用

概述

C#中的继承是面向对象编程的重要概念之一,它允许一个类(称为子类或派生类)从另一个类(称为父类或基类)继承属性和行为。

继承的主要目的是实现代码重用和层次化的组织。子类可以继承父类的字段、属性、方法和事件,而无需重新实现这些成员。通过继承,我们可以在子类中添加额外的功能或修改父类的行为,实现代码的扩展和定制。

在C#中,使用冒号(:)符号来表示一个类继承自另一个类
基类

 internal class person
    {
        public int age;
        public string name;
        public void speake()
        {
            Console.WriteLine("说话");
        }
    }

子类

   //chinese继承了person类,可以直接使用person类中定义好的字段和方法
   internal class chinese : person
    {
        //果如,字类中定义了和父类一样的字段或方法可以使用new关键字来修饰
        public new void speake()
        {
            Console.WriteLine("中文");
        }
    }

继承中的构造方法

无参构造方法

       //父类的无参构造方法
       public person()
        {
            Console.WriteLine("person父类无参构造函数");
        }
        //字类的无参构造方法
        public chinese()
        {
            Console.WriteLine("chinese字类的构造方法");
        }

在main方法中实例化chinese类

chinese s = new chinese();

执行后的结果
在这里插入图片描述
结论:在字类继承父类中,实例化子类的对象,会首先执行父类的构造函数,在执行字类的构造函数

有参构造函数

       //父类有参构造函数
        public person(int age, string name)
        {
            Console.WriteLine("person父类:" + "age:" + age + ",name" + name);
        }
        //字类的有参构造函数
        //base关键字的作用是把字类的形参传递给父类,有参构造函数必须要父类传参,要不然会报错
        //base这里也可以直接写自己的参数,不复用字类传递过来的值 :base(10,"xiaoming")
        public chinese(int age, string name) : base(age, name)
        {
            Console.WriteLine("chinese字类" + "age:" + age + ",name:" + name);
        }

在main方法执行chinese的有参的实列

chinese s = new chinese(301, "xiaoming1");

执行后结果
在这里插入图片描述
总结:当父类只有有参构造函数时,字类使用有参构函数时。首先调用自己的父类的有参构造函数,在调用自己的有参有参构造函数。

你可能感兴趣的:(c#)