欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

c#学习笔记 里氏替换原则 is和as

程序员文章站 2022-07-03 19:21:49
里氏替换原则:任何父类出现的地方都可以用子类替代。换言之,父类对象可以作为容器装载子类对象。类似Java中的上转型对象。is :判断一个对象是否为指定类的实例返回 bool 是返回真,不是返回假as :将一个对象转换为指定类的对象返回 指定类的对象 成功返回指定类的对象 失败返回nullclass Creature { protected int HP; protected int ATK; } class Hero : Creatur...

里氏替换原则:任何父类出现的地方都可以用子类替代。换言之,父类对象可以作为容器装载子类对象。类似Java中的上转型对象。

is :判断一个对象是否为指定类的实例
返回 bool 是返回真,不是返回假

as :将一个对象转换为指定类的对象
返回 指定类的对象 成功返回指定类的对象 失败返回null

class Creature
    {
        protected int HP;
        protected int ATK;
    }
    class Hero : Creature
    {
        public void Attack ()
        {
            ATK = 10;
            Console.WriteLine ("Hero Attack,deal {0} damage.", ATK);
        }
    }
    class Monster : Creature
    {
        public void Hurt (int damage)
        {
            HP = 100;
            Console.WriteLine ("Monster gets hurt,{0} HP left.", HP - damage);
        }
    }
    class Program
    {
        static void Main (string[] args)
        {
            Creature creature = new Hero ();
            if (creature is Hero)
            {
                (creature as Hero).Attack ();
            }
            creature = new Monster ();
            if (creature is Monster)
            {
                (creature as Monster).Hurt (10);
            }
        }
    }

本文地址:https://blog.csdn.net/Groyo/article/details/112870868

相关标签: c#学习笔记 c#