当前位置: 首页 > news >正文

湘icp备 网站建设 农业 湖南域名建设好了怎么在建设网站

湘icp备 网站建设 农业 湖南,域名建设好了怎么在建设网站,建设网站的那个公司好,专业画册设计公司在面向对象编程中继承性和多态性是重要机制#xff0c;前面我为大家分享了我对“类的继承”的理解#xff0c;哪么今天我就跟大家分享下我对“多态性(C#)”的理解。 首先我们先来看看多态的定义#xff0c;同一操作作用于不同的对象#xff0c;可以有不同的解释#xff0c…      在面向对象编程中继承性和多态性是重要机制前面我为大家分享了我对“类的继承”的理解哪么今天我就跟大家分享下我对“多态性(C#)”的理解。       首先我们先来看看多态的定义同一操作作用于不同的对象可以有不同的解释产生不同的执行结果。       C#中多态分为两种形式一种是编译的多态一种是运行的多态而所涉及到多态的有重载、重写、虚方法、抽象方法和隐藏方法。       下面来看看这一段代码我们从代码中来分析他们的概念及区别    public abstract class A   {          public abstract void prind();   }   public class B:A       {            public override void prind()             {                   Console.WriteLine(我是B类我重写了A类的抽象方法prind());             }             public virtual void Bprind()             {                    Console.WriteLine(我是B类中的虚方法我可以被继承B类的派生类重写);             }             public void Nprind()             {                   Console.WriteLine(Nprind);             }    }    public class CB    {          public override Bprind()          {               Console.WriteLine(我重写了B类的虚方法Bprind);          }           new  public void Nprind()           {                 Console.WriteLine(我是隐藏Nprind);           }          /* 下面是另一种隐藏方法的表现形式           public new void Nprind()           {                 Console.WriteLine(我是隐藏Nprind);           }          */           public void Cprind()          {                Console.WriteLine(我是Cprind方法);          }          public void Cprind(string str)          {                Console.WriteLine(str我被重载了);          }     }     class D     {          static void Main(string []arge)          {                 B bnew B();               B bcnew C();               C cnew C();              //重写抽象方法               b.prind();              //重写虚方法               b.Bprind();               bc.Bprind();              //隐藏方法               b.Nprind();               bc.Nprind();               c.Nprind();              //重载               bc.Cprind();               bc.Cprind(E);               Console.Read();          }     } 输出结果 我是B类我重写了A类的抽象方法prind() 我是B类中的虚方法我可以被继承B类的派生类重写 我重写了B类的虚方法Bprind Nprind Nprind 我是隐藏Nprind 我是Cprind方法 E我被重载了 如果单看这段代码可能会看的很费力所以我们来听听类他们之间的对话。 D:A类因为你是抽象类所以你可以定义抽象方法定义的抽象方法prind可以被继承你的子类重写因此B类可以重写你的抽象方法prind。 A:我可以被继承我的子类B重写哪么我也可以被其他的子类重写咯也就是说我使用了多态性。 D:是的你使用了多态性中涉及的抽象方法因为你的所有子类都可以对你的抽象方法重写所以你符合了多态性的定义但你的所有子类都要注意重写你的抽象方法必须要用到override关键字、修饰符要相同、传递的参数个数和类型也都要一样及方法的返回值都要一样。   D:B类你自身的Bprind方法是虚方法也可以被继承你的子类重写不过你和A类不同的是你自身也可以调用这个虚方法。 B:为什么Bprind会是虚方法呢它和别的方法也没什么不同啊只是多了个virtual关键字而已难道加了virtual关键字的就是虚方法 D:对的虚方法就是必须要加上virtual关键字而没有加virtual或别的关键字的我们叫它为非虚方法也是因为是虚方法才可以重写非虚方法是不能重写的但要注意只有继承你的子类才可以重写你的虚方法。 B:哦所以C类可以重写我的Bprind这个虚方法。   D:C类你不但重写了父类B的虚方法还把B类中的Nprind方法写在了隐藏方法了而已还对自身的Cprind方法进行了重载。 C:听到你跟A、B类的对话我知道了我是重写了虚方法但这个隐藏方法和重载了Cprind方法又是什么回事呢 D:隐藏方法和重写方法差不多只是关键字不是override而改成了new还有不同的是new可以在修饰符前或后。而重载是在同一个作用域中使用了相同的方法名修饰符、返回值、参数都可以不相同。 C:隐藏方法我自己能调用吧但如果实例化父类时引用的是我哪么调用的应该是我的还是父类的方法呢 D:隐藏方法你自己可以但只有是对你自己实例时调用的才是你而如果父类实例时引用的是你哪么调用的将是父类的方法。         首先我们先从他们对话和给合代码来看看重载与重写的区别:                                             重载                                                 重写              修饰符                    可以不同                                              必须相同                               参数个数及类型               可以不同                                              必须相同             返回值                     可以不同                                              必须相同             方法名                     必须相同                                              必须相同         接下来我们来看看抽象方法、隐藏方法、虚方法的注意事项        抽象方法        1.在基类中定义派生类中重写。        2.抽象方法只有在抽象类中才可使用。        3.抽象类不能实例化。        4.必须使用abstract。        隐藏方法        1.派生类中定义的和基类中的某个方法名相同。        2.父类调用父类的方法而子类调用子类的方法。        3.使用new关键字虚方法也能使用。         虚方法         1.在父类中定义的子类可以重写。         2.使用virtual关键字。         注父类自身也可调用。  转载于:https://www.cnblogs.com/ljhboke/p/5047011.html
http://wiki.neutronadmin.com/news/335743/

相关文章:

  • 长沙医考网站建设公司江苏工程造价信息网官网
  • 企业微信开放平台api朝阳seo搜索引擎
  • 网站编程培训网站开发工程师需要什么证书
  • 网站建设厃金手指花总十一wordpress 9gag主题
  • 织梦网站分享插件宁波建站价格
  • 企业网站建设公司有哪些临沂龙文网站建设
  • 佛山网站制作专家济南建站公司网站
  • 商丘做网站一般多少钱廊坊市网站建设
  • 网站建设需要矢量文件邯郸房产网官网
  • 建设银行官网站下载地址spam free wordpress
  • 网站到底怎么做出来的搜索引擎优化方案案例
  • 西宁做网站公司电话山东省和住房城乡建设厅网站
  • wordpress链接mysql枣庄网站seo
  • 网店网站技术方案和男人人做的网站
  • 浅谈营销型网站建设的市场费用wordpress 档案插件
  • 温州市城建设计院网站做响应式网站的流程
  • 数字校园建设专题网站app程序定制开发
  • 设计专业招聘网站网络营销模式的有形收益包括
  • 汇创建站做封面下载网站
  • 沟通交流类网站有哪些微网站建设平台
  • 怎样创建网站或网页深圳包装设计公司有哪些呢
  • 福州公司建站站长之家最新网站
  • 网站怎么推广运营dedecms购物网站模板下载
  • 网站建设前的需求分析如何查询网络服务商
  • 域名注册服务网站网站建设 开发 模板
  • ps做网站字体用多大的淮安做网站
  • 网站出现建设中开广告公司利润大吗
  • 企业网站建设费入什么科目现代广告创意设计
  • 哪个网站做二手车抵押网页微信注册新号怎么注册
  • 中国建设银行征信中心网站深圳外包企业网站