一、里氏转换
1、里氏转换的原则:
C#中可以使用一个父类类型的变量来引用一个子类类型的对象,即将子类对象当作父类类型使用,这就是所谓的里氏转化原则
里氏转换的原则2、子类可以赋值给父类,并且通过父类变量可以调用子类中的方法。示例代码:
子类可以赋值给父类3、父类强转为子类对象
如果父类中装的是子类对象,那么可以将这个父类强转为子类对象。
要想将父类变量转换为子类类型,只能在一种特殊情况下实现,即父类变量引用的是当前子类对象。示例代码如下:
父类强转为子类对象4、里氏转换的练习:
创建10个对象通过一个循环去调用他们各自打招呼的方法,控制台会显示如下结果:
控制台会显示结果代码如下:
里氏转换的练习二、protected访问修饰符
1、protected访问修饰符的含义:
在c#的可访问性级别中,public和private算是最容易理解的,相反protected往往不太好理解。
我们可以理解成它是受保护的,可以在当前类的内部以及该类的子类中访问。
protected类型并不是能够被派生类所访问就是随心所欲的访问,而是有条件的,访问必须是通过派生类类型发生时,在派生类中的基类的protected类型成员才能够被访问,下面的代码并不是通过派生类的类型访问的,而是通过基类的类型访问的,此时此刻,protected和private十分的相似,只不过,protected类型成员能够被派生类所继承并且能够通过派生类类型访问。
2、示例代码:受保护的,可以在当前类的内部以及该类的子类中访问。
示例代码protected访问修饰符