【C#】里氏转换

  里氏转换

 

   今天学习了里氏转换,对于平常看C#视频一集看3、4分钟大脑容量就已充满的我来说,一下子看了半个多小时,破纪录了,哈哈!

 

   C#视频中分为基类(父类)和派生类(子类),如果子类想要调用父类中的某些方法或某些东西,是不能直接调用的,这时候就需要将子类转换成父类,在通过父类去调用。里面的转换就是所谓的里氏转换。

 

   如图所示(person是父类,student和teacher是子类),下面依次列出了里氏准换的4种情况,其中1,3是成功的,2和4转换不了

 

 

 

   2失败的原因:从图中可以看出person父类要转换成teacher子类,但转换的时候却转换了student子类。就比如我想变成一个超人,你却把我变成了芭比公主,变错了!

 

   4失败的原因:父类不能直接变子类,要先new你要变成哪个子类

 

   判断

      写代码时,代码当时可能不报错,但一 运行起来就会报错。所以设置一个判断,如有错了提示“转换不了”,否则转换。代码如下所示:

 

 

as也是转换,但如果转换不了的不报异常,返回来null

is返回的是bool值, true就是能转换,false就是不能转换

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 38
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值