那位高手给我解释一下(asp. net+c#)多态

来源:百度知道 编辑:UC知道 时间:2024/05/15 19:22:42
最后在加上简单的代码!!

正如一楼所说的 :
有一个飞的基类:
class FlyBase
{
//有个飞的方法
public virtual void Fly()
{
console.write("我只是告诉你我能飞,但我不告诉你怎么飞,实现我,加上你飞的方法你就能飞");
}
}
鸟类:
class Bird:FlyBase
{
public override void Fly()
{
console.write("拍拍翅膀就能飞")
}
}
超人类:
class SuperMan:FlyBase
{
public override void Fly()
{
console.write("握紧拳头,一跳就可以飞")
}
}

一天 ,鸟儿跟超人在天上相遇了 ,它对超人说 我跟你都能飞,但飞的技能不一样,对于FlyBase来说 我们是一体的都能飞;所以可以把我们都叫做FlyBase

FlyBase bird =new Bird();鸟儿
FlyBase superMan= new SuperMan();超人
鸟儿说: 我飞是用我的技能才可以 所以 bird.Fly() 要调用Bird类的Fly方法
超人说: 我飞也要用我的方法才可以 所以 superMan.Fly() 调用的是SuperMan的Fly方法.
这就是多态 都可以转化为基类对象 但调用的却是子类的方法 注意基类方法用virtual修饰

鸟也会飞,超人也会飞。。
鸟的话拍拍翅膀就能飞,超人的话,握紧拳头,一跳就可以飞。。这就是多态。。

同样是飞。实现不一样而已。

我服了你们了,太形象了