c#学习笔记 里氏替换原则 is和as
程序员文章站
2022-03-27 08:53:39
里氏替换原则:任何父类出现的地方都可以用子类替代。换言之,父类对象可以作为容器装载子类对象。类似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
上一篇: 反序列化漏洞例子——jackson反序列化漏洞的调试与分析
下一篇: java_自定义异常类