里氏替换原则

发布时间:2026/7/18 21:18:25
里氏替换原则 里氏替换原则是指对于已经继承了父类的子类可以用父类容器来装载子类对象便于对象的管理与存储。而在需要执行子类内部的具体逻辑时则搭配is与as关键字来使用。is关键字用于判断某个对象是否属于某个类若是则返回True否则返回Falseas关键字用于将某个对象转换为某个类内的对象若转换成功则返回转换成对应类的对象若转换失败则返回null。namespace ConsoleApp5 { class GameObject { } class Player : GameObject { public void PlayerAtk() { Console.WriteLine(玩家攻击); } } class Monster : GameObject { public void MonsterAtk() { Console.WriteLine(怪物攻击); } } class Boss : GameObject { public void BossAtk() { Console.WriteLine(Boss攻击); } } class Program { static void Main(string[] args) { //里氏替换 GameObject player new Player(); GameObject monster new Monster(); GameObject boss new Boss(); GameObject[] objects new GameObject[] { new Player(),new Monster(),new Boss()}; //利用is与as搭配使用先判断对象是否属于在转换为对应对象并调用对应方法 for (int i 0; i objects.Length; i) { if (objects[i] is Player) { Player p objects[i] as Player; p.PlayerAtk(); //也可写作(objects[i] as Player).PlayerAtk() } else if (objects[i] is Monster) { (objects[i] as Monster).MonsterAtk(); } else if (objects[i] is Boss) { (objects[i] as Boss).BossAtk(); } } } } }