文章目录
什么是里氏代换原则
通俗来讲:“派生类(子类)对象可以在程式中代替其基类(超类)对象。
里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此再程序中尽量使用基类类型来对对象进行定义,而在运行时再确定子类类型,用子类对象来替换父类对象。
类型转换
显示转换:父类对象转换为子类对象使用强制转换
case1
Person p =new Teacher(); Teacher t =(Teacher)p;//强制转换 t.SayHi();
隐式转换:子类对象转换为父类对象直接转换
case2
Student stu =new Student(); Person p =stu;//隐式转换 p.Show();
关键字is/as转换
is转换:返回的是bool类型
as转换:如果转换不了的,不报异常返回来的是null
//关键字is转换 Person p =new Student();//父类转换为子类 bool result = p is Teacher; if(result) { Teacher t =(Teacher)p; } else { Console.writeline("转换不了"); } Console.ReadKey();
//关键字as转换 Teacher t =new Teacher();//子类转换为父类 Person p = t as Person; p.PerShow(); Person p =new Teacher();//父类转换为子类 Teacher t =p as Teacher