多态vob

多态的概念

多态按字面的意思就是“多种状态”

让继承同一父类的子类们 在执行相同方法时有不同的表现(状态)

主要目的

同一父类的对象 执行相同行为(方法)有不同的表现

解决的问题

让同一个对象有唯一行为的特征

解决的问题

class Father
{
    public void SpeakName()
    {
        Console.WriteLine("Father的方法");
    }
}
class Son:Father
{
    public new void SpeakName()
    {
        Console.WriteLine("Son的方法");
    }
}
Father f = new Son();
f.SpeakName();
(f as Son).SpeakName();

 

多态的实现

运行时多态( vob、抽象函数、接口 )

v: virtual(虚函数)

o: override(重写)

b: base(父类)

class GameObject
{
    public string name;
    public GameObject(string name)
    {
        this.name = name;
    }

    //虚函数 可以被子类重写
    public virtual void Atk()
    {
        Console.WriteLine("游戏对象进行攻击");
    }
}

class Player:GameObject
{
    public Player(string name):base(name)
    {

    }

    //重写虚函数
    public override void Atk()
    {
        //base的作用
        //代表父类 可以通过base来保留父类的行为
        base.Atk();
        Console.WriteLine("玩家对象进行攻击");
    }
}

class Monster:GameObject
{
    public Monster(string name):base(name)
    {

    }

    public override void Atk()
    {
        Console.WriteLine("怪物对象进行攻击");
    }
}

多态的使用

GameObject p = new Player("唐老狮");
p.Atk();
(p as Player).Atk();

GameObject m = new Monster("小怪物");
m.Atk();
(m as Monster).Atk();

总结:

多态:让同一类型的对象,执行相同行为时有不同的表现

解决的问题: 让同一对象有唯一的行为特征

vob:

v:virtual 虚函数

o:override 重写

b:base 父类

v和o一定是结合使用的 来实现多态

b是否使用根据实际需求 保留父类行为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不背完3500个考研英语词汇不改名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值