- 继承的概念: 继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。同 时也有利于重用代码和节省开发时间。 当创建一个类时,我们不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的 类,继承了已有的类的成员即可。 这个已有的类被称为的基类,也叫父类,这个新的类被称为派生类,也叫子类。 继承的思想实现了属于(IS-A)关系。例如,哺乳动物属于(IS-A)动物,狗属于(IS-A) 哺乳动物,因此狗属于(IS-A)动物。
- C#继承的特点:派生类是对基类的扩展,派生类可以添加新的成员,但不能移除已经继承的成员 的定义。 继承是可以传递的。如果 C 从 B 中派生,B 又从 A 中派生,那么 C 不仅继承了 B 中声明的成员,同样也继承了 A 中声明的成员。 构造函数和析构函数不能被继承,除此之外其他成员能被继承。基类中成员的访 问方式只能决定派生类能否访问它们。private protected public 派生类如果定义了与继承而来的成员同名的新成员,那么就可以覆盖已继承的成 员,但这并不是删除了这些成员,只是不能再访问这些成员。 类可以定义虚方法、虚属性及虚索引指示器,它的派生类能够重载这些成员,从 而使类可以展示出多态性。 派生类只能从一个类中继承,可以通过接口来实现多重继承。
Class person
{
Public person(){
Name = “李四”
Age = 18;
Sex = “男”
public string name;
public int age;
public string sex;
public void PrintPersonInfo()
Console.WriteLine("姓名:{0} , 性别:{1}, 年龄:{2}", name, sex, age)
}
}
class Student:Person {
public Student() {
classRoom = "403";
course = "计算机技术"; }
//班级 11 string classRoom;
//课程
string course;
public void PrintStudentInfo()
{ PrintPersonInfo();
Console.WriteLine("班级:{0},课程:{1}", classRoom, course); }
} //Program.cs
class Program { static void Main(string[] args)
{ Student stu = new Student(); stu.PrintStudentInfo();
}
}
- C#继承关系中构造方法之间的关系 1、在实例化子类对象是,会先调用父类的构造方法,然后在调用子类的构造方法 2、默认情况下,在子类的构造器中都会自动调用父类的无参构造器 3、如果需要调用父类中带参数的构造器才使用“:base(参数)”的形式
例:
class A
{ public A()
{ Console.WriteLine("A类的构造方法");
}
public A(string name)
{ Console.WriteLine("A类的构造方法,传入的值为:" + name);
}
} class B :A { public B() {
Console.WriteLine("B类的构造方法");
}
public B(string name):base(name) //调用父类中带参数的构造器
{
Console.WriteLine("B类中带参数的构造方法,传入的值为:" + name);
}
}