欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 里氏代换原则

程序员文章站 2022-12-20 19:16:38
文章目录什么是里氏代换原则类型转换关键字is/as转换什么是里氏代换原则 通俗来讲:“派生类(子类)对象可以在程式中代替其基类(超类)对象。里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此再程序中尽量使用基类类型来对对象进行定义,而在运行时再确定子类类型,用子类对象来替换父类对象。类型转换显示转换:父类对象转换为子类对象使用强制转换 case1Person p =new Teacher();Teacher t =(Teacher)p;//强制转换t....

什么是里氏代换原则

通俗来讲:“派生类(子类)对象可以在程式中代替其基类(超类)对象。
里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此再程序中尽量使用基类类型来对对象进行定义,而在运行时再确定子类类型,用子类对象来替换父类对象。

类型转换

显示转换:父类对象转换为子类对象使用强制转换

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

本文地址:https://blog.csdn.net/wangwei021933/article/details/109559102

相关标签: C#