C#之多态性总结

    起初接触到这个名词的时候,是在看C++看到的,里边写的概念还是比较好理解的。但是这次看到了C#中关于多态的视频的时候,讲的我是云里雾里的。脑子里除了雾还是雾。不过还好,有个大神,还有巨人的帮助。让我渐渐扒开雾层,重见光明。

    多态就是同一操作作用于不同对象,可以有不同的解释,产生不同的执行结果。这就是多态性。同时要多态性是通过派生类覆写基类中的虚函数型方法来实现的。

    说到这里,就不得不说一下重载和覆写。

    什么是重载呢?就是一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法

    比如说:

     public void ZhuGuo()
  {
      this.Guo="空气";
   }
    public void ZhuGuo(string tie)
   {
       this. Guo=tie;
    }

	

        这个例子就是,比如我是个铸锅匠,不管是铁锅还是铝锅都会铸,顾客拿来铁可以铸铁锅,拿来铝可以铸铝锅,什么都没带来就用空气来给他铸个空气锅。这样一样的方法,但是所带来的材料(方法的参数不同),就会出现 不同的结果。这样重载就可以使功能扩展。

        什么是重写呢?重写顾名思义,是重新设计了方法的实现,这个“重新设计”的基础是方法名和参数完全一致,但是内部实现体不一样。重写一般发生在父类和子类之间,一般父类定义一个虚方法或抽象方法,子类根据具体情况“重写”其中的实现。

比如:形状都有大小,圆和方都属于形状。他们都有各自的大小。通过重写可以得到他们各自的大小。

先定义一个抽象类——shape ,其中GetSide(得到图形大小)是一个虚方法。

        abstract public class shape
        {
            abstract public int GetSide();
        }
 

        如果要是想得到圆的大小,就要重新写一下GetSide这个方法,来得到圆的大小

            public class 圆 : shape
            {
                public override int GetSide()
                {
                    return 1;
                }
            }


同样 ,方也有自己的大小。这样我们也要重写一下GetSide这个方法。来得到方的实际大小

            public class 方 : shape
            {
                public override int GetSide()
                {
                    return 2;
                }
            }

这样我们就可以使用同一种方法,来实现不同的效果(功能),这样就是面向对象设计的多态性。多态性就是父类使用子类的方法,通过声明父类实例化子类。就像一个父亲拥有好几个儿子,他们都会演奏,当要求父亲开一场演奏会的时候,父亲就会下达演奏这个命令,各个儿子根据自己的情况,演奏不同的乐器,这样就构成了一场完美的演奏会,完成了父亲的任务。

                                                         知识来源于生活。





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 27
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值