里氏转换

里氏转换的原则:1、子类可以直接赋值给父类。父类若指向子类,那么可以强制转化为该子类。

例如

static void main(string[] args)

{

Son son1 =new Son("张三");

Person P = son1;

p.Say();

//实例化了一个Son对象,然后赋值给P,转化为父类对象。

//P是一个父类对象,但是里面存放的是一个Son类型的引用类型

Son son2 =(Son)P;

son2.say();

//因此可以直接将其强转为Son对象,再赋值给一个Son类型的变量

//转化回Son类型以后,就可以使用子类和父类的方法了

}

所以里氏转化强行转化的前提是,事前就存放的该类型。

你可能感兴趣的:(里氏转换)