概述
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");
执行后结果
总结:当父类只有有参构造函数时,字类使用有参构函数时。首先调用自己的父类的有参构造函数,在调用自己的有参有参构造函数。