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

     }

    结果如下:

     

  • 相关阅读:
    Golang之ring.Ring的Link操作
    Servlet3.0新特性之web-fragment.xml模块化配置文件
    使用filter代替jsp获取参数
    数据库中常用的字符串截取函数-总结
    js判断两字符串是否相等不区分大小写
    java读取excle内容(类似表结构)
    postgreSQL数据库分页查询
    3D轮播图案例
    3D立方体案例
    去除HTML双击背景和input框取消输入颜色
  • 原文地址:https://www.cnblogs.com/pan11jing/p/2455092.html
Copyright © 2011-2022 走看看