一,概念
里氏替换原则是面向对象设计的基本原则之一,核心思想:所有引用基类的地方必须能够透明地使用其子类的对象。即子类对象可以替换基类对象而不影响程序的正确性。
表现:父类容器可以装载子类对象,但子类容器不能装载父类对象。
二,语法表现:
//父类容器装载子类对象
// 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。