C#里式替换原则

First time~

5-22

继承🧒---里式替换原则是面向对象七大原则中最重要的原则

知识点一:基本概念

  • 概念 :任何父类出现的地方,子类都可以替代
  • 重点 :语法表现----父类容器装子类对象,因为子类对象包含了父类的所有内容
  • 作用 :方便进行对象的存储和管理

知识点二:基本实现

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)
  {
    Console.WriteLine("里式替换原则");
   
    //里式替换原则  用父类容器装载子类对象
    GameObject player = new Player();
    GameObject Monster = new Monster();
    GameObject Boss = new Boss();
    
    GameObject[] objects = new GameObject[]{ new Player(),new Monster(),new Boss() };
  }
}

知识点三:is 和 as

当用父类容器装载子类对象 但是需要调用子类的成员方法需要使用 is 和 as

  • is:判断一个对象是否是指定类对象 返回值:bool
  • as :将一个对象转换为指定类对象 返回值:成功时返回指定类对象 失败时返回Null
//is基本语法
if (player is Player)
{
  
}
else if(player is Monster)
{
  
}

//as基本语法
Player p = player as Player;

//组合使用以让父类装载可以访问其子类内容
if(player is Player)
{
  Player p = player as Player;
  p.PlayerAtk();----->可以调用子类自己的方法了
  
   //or
  (player as Player).PlayerAtk();----->可以调用子类自己的方法了
}

posted on 2022-05-23 10:01  AcherLoveCode  阅读(79)  评论(0编辑  收藏  举报

导航