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里的方法)

     }

    结果如下:

     

  • 相关阅读:
    Ubuntu 16 安装redis客户端
    crontab 参数详解
    PHP模拟登录发送闪存
    Nginx配置端口访问的网站
    Linux 增加对外开放的端口
    Linux 实用指令之查看端口开启情况
    无敌的极路由
    不同的域名可以指向同一个项目
    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error
    Redis 创建多个端口
  • 原文地址:https://www.cnblogs.com/pan11jing/p/2455092.html
Copyright © 2011-2022 走看看