zoukankan      html  css  js  c++  java
  • c# 多态

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    namespace ConsoleExample
    {
        class 哥
        {
            public virtual void draw()
            {
                Console.WriteLine("哥来做事,你们可以偷偷乐了");
            }
            public void ff()
            { 
                Console.WriteLine("哥的FF方法");
            }
        }
        class 小弟 : 哥
        {
            public override void draw()
            {
                Console.WriteLine("小弟不用哥的,小弟要单干");
                //base.draw();
            }
            public new void ff()
            {
                Console.WriteLine("小第的FF方法");
            }
        }
        class 小妹 : 哥
        {
            public new void ff()
            {
                Console.WriteLine("小妹的FF方法");
            }
        }
    }
     public static void Main()

      { 

               哥[] father = new 哥[3];

                father[0] = new 哥();
                father[1] = new 小弟();
                father[2] = new 小妹();
                foreach (哥 t in father)
                {
                    t.draw();    //调用实际的重写对象的方法(子类里面,如果override 了draw方法,调用它,没有就调用父类的draw方法)           
                }
                小弟 tt = new 小弟();
                tt.draw();      //调用实际的重写对象的方法(子类里面,如果override 了draw方法,调用它,没有就调用父类的draw方法)
                tt.ff();        //调用本类的方法(小第里面的方法)
                哥 bb = tt;
                bb.draw();      //调用实际的重写对象的方法(子类里面,如果override 了draw方法,调用它,没有就调用父类的draw方法)
                bb.ff();        //调用本类的方法 (哥里的方法)
                哥 cc = new 小妹();
                cc.draw();      //调用实际的重写对象的方法(子类里面,如果override 了draw方法,调用它,没有就调用父类的draw方法)
                cc.ff();        //本类的方法(哥里的方法,是非虚方法) 
                哥 gg = new 小弟();
                ((小弟)gg).draw();//调用实际的重写对象的方法(类小弟里面,如果override 了draw方法,调用它,没有就调用父类的draw方法)
                ((小弟)gg).ff();  //类小弟的方法(base里的方法)

     }

    结果如下:

     

  • 相关阅读:
    4
    3
    iOS常用的三种支付方式
    iOS开发技术之银联支付
    iOS开发技术之支付宝支付
    iOS开发技术之微信支付
    Subversion使用总结
    如何在已有 Xcode 项目中 加入Cordova框架(或者称PhoneGap框架)进行iOS移动跨平台开发
    iOS开发中Masonry的使用总结:
    iOS开发中的权限适配问题总结
  • 原文地址:https://www.cnblogs.com/pan11jing/p/2455092.html
Copyright © 2011-2022 走看看