动态多态性

里氏替换原则的实现方式:子类可以出现在任何需要父类出现的地方

动态多态性:

1.虚方法的动态多态性

2.抽象方向的动态多态性

3.接口方法的动态多态性

动态多态性的作用:

1.实现"功能定义"与"功能实现"相脱离,实现代码进一步灵活性

2.实现"系统设计"与"系统代码"相脱离,实现代码稳定性,减少系统BUG


using System;

namespace 动态多态性

{

      class Person

       {

              public virtual void Speak(){

                       Console.WriteLine("父类说");

               }

         }

        class Zhang:Person

        {

               public override void Speak ()

               {

                     Console.WriteLine("张说");

               }

          }

          interface IPerson

          {

                 void Speak();

           }

           interface IPersonTwo

           {

                void Speak();

           }

          class Chinese:IPerson,IPersonTwo

          {

                void IPerson.Speak(){

                    Console.WriteLine ("中国人说中国话");

                 }

                 void IPersonTwo.Speak(){

                     Console.WriteLine ("中国人还会说英语");

                 }

           }

          class MainClass

         {

              public static void Main (string[] args)

             {

                    //虚方法的动态多态性

                    // Person p = new Zhang();

                     // p.Speak();

                     //动态多态性之接口

                     IPerson ip = new Chinese();

                     ip.Speak ();

                     IPersonTwo ip2 = new Chinese ();

                     ip2.Speak ();

              }

           }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容