动态多态性

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

动态多态性:

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 ();

              }

           }

}

你可能感兴趣的:(动态多态性)