C#继承之里氏替换原则分析
作者:虚芷望空
这篇文章主要介绍了C#继承之里氏替换原则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
C#里氏替换原则
一.概念
里氏替换原则是面向对象设计的基本原则之一:
- 核心思想:所有引用基类的地方必须能够透明地使用其子类的对象。即子类对象可以替换基类对象而不影响程序的正确性。
- 表现:父类容器可以装载子类对象,但子类容器不能装载父类对象。
二.语法表现
//父类容器装载子类对象 // Player和Monster 是GameObject的子类 GameObject player=new Player(); GameObject monster=new Monster(); //子类容器不能装载父类对象 //Player p=new GameObject();
三.类型检查与转换
C# 提供了is和as操作符来处理类型检查和转换。
if(player is Player) { (player as Player).PlayerAtk(); }
- is用于检查对象是否属于特定类型
- as用于安全转换,和强转来相比,更加安全,as转换失败时会返回null。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。