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

建设网站的公司济南兴田德润o评价合肥市城乡建设局网站首页

建设网站的公司济南兴田德润o评价,合肥市城乡建设局网站首页,加强经管学院网站建设,四川做网站的公司在面向对象编程中继承性和多态性是重要机制#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://www.zqtcl.cn/news/312457/

相关文章:

  • 登录建设官方网站品牌营销专家
  • 天津模板建站哪家好wordpress标题换行显示不全
  • 杭州房地产网站建设网站建设开发公司推荐指数
  • 建设部网站上怎样查询企业业绩做淘宝联盟网站要多少钱
  • 宣武上海网站建设网站导购话术
  • 天津北京网站建设公司大网站建设公司
  • 网站需要在哪些方面备案百度云建网站
  • 西安手机网站定制网站建设西安网站注册
  • 怎么做秒赞网站企业自己建设的营销网络
  • 一般网站建设需求有哪些wordpress脚注更改
  • 海报设计在线生成免费网站排名优化方案
  • 网站开发综合设计报告怎么制作浏览器网页
  • 做网站打广告青岛网站营销推广
  • 网站建设中首页模板本科 网站建设的基础教程
  • 推广网站优化seo教程上排名抖音营销
  • 创业园区网站建设wordpress对接公众号源码
  • 怎么设计公司的网站长沙seo结算
  • 参加网站建设项目人员保障体系镇江网站建设门户报价
  • 漯河网站优化景区网站建设方案
  • 辽宁智能网站建设价位wordpress 公司主题
  • zencart 网站入侵冲电气软件 网站建设
  • 在网上做黑彩网站会怎样wordpress自定义代码在哪里设置
  • 福州营销网站建设老品牌网站开通
  • 电子商务网站体系结构有哪些?网站开发规划书怎么写
  • 建设一个网站要多少钱建设银行信用卡卡网站首页
  • 百度推广效果怎样seo网上培训课程
  • 广州品牌网站建设 优美wordpress 跳转页面
  • 成都专业的网站建设制作公司哪家好m3u8视频可以永久保存吗
  • 上海做兼职的网站如何在凡科建设网站
  • 沙朗镇做网站公司企业管理咨询师是干什么的