C#的多态

来源:互联网 发布:合版印刷网络下单系统 编辑:程序博客网 时间:2024/06/08 10:30
有一个飞的基类: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来说   我们是一体的都能飞;所以可以把我们都叫做FlyBaseFlyBase bird =new Bird();鸟儿FlyBase superMan= new SuperMan();超人鸟儿说: 我飞是用我的技能才可以  所以  bird.Fly() 要调用Bird类的Fly方法超人说: 我飞也要用我的方法才可以  所以  superMan.Fly() 调用的是SuperMan的Fly方法.这就是多态  都可以转化为基类对象搜索  但调用的却是子类的方法 注意基类方法用virtual修饰
要点:1、要有继承
      2、子类要重写父类方法
      3、父类引用指向子类对象
0 0
原创粉丝点击