继承:代码重用
增强可扩展性(多态) virtual,,是实现多态的一种手段
为什么要继承?继承带给我们的好处?
代码重用
LSP里氏替换原则、多态。(程序的可扩展性、灵活性)方法重写override。 方法的原理:虚方法表。
子类继承父类的属性和方法,使创建子类变得很简单,实现了代码重用、以及多态。
类的单根继承性、传递性、继承时构造函数的问题。
所有的类都直接或间接的继承自object。查看IL代码。
继承带给我们的两个好处:
1.代码重用
2.多态(里氏替换原则LSP)
访问修饰符
1.当写好一个类以后,默认会存在一个没有参数的构造函数(即便我们不写构造函数,也会存在这么一个无参的构造函数)
2. 当手动添加一个构造函数以后,会将默认的无参数的构造函数覆盖掉。
3.类的构造函数是不能被继承的。只能在子类中去调用父类的构造函数。
Eg.virtual 实现多态
Person类中
public virtual void Hello()
{ }
Student类中
public override void Hello()
{
Console.WriteLine("Hello,我是一名学生");
}
Teacher类中
public override void Hello()
{
Console.WriteLine("大家好,我是一名老师.");
}