zoukankan      html  css  js  c++  java
  • C# 虚方法的重载 new 与 virtual

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace OverrideTest
    {
        class A
        {
            private String username;
            public void method1()
            {
                Console.WriteLine("A.method1");
            }
            //虚函数能够被重载,能够多态
            public virtual void method2()
            {
                Console.WriteLine("A.method2");
            }
        }
        class B : A
        {
            //调用这个函数名的时候,查看当前的编译类型是什么,根据这个编译类型调用编译类型的方法。
            public new void method1()
            {
                Console.WriteLine("B.method1");
            }
            //调用这个函数名的时候,查看当前的运行时类型是什么,根据这个对象的实际类型调用它的方法。
            public override void method2()
            {
                Console.WriteLine("B.method2");
            }
            
    
        }
    
        class Test {
            public static void Main() {
                B b = new B();
                A a = b;
                a.method1();
                a.method2();
                b.method1();
                b.method2();
                Console.Read();
            }
        }
        
    }

    输出结果:

    A.method1

    B.method2

    B.method1

    B.method2

  • 相关阅读:
    需求分析作业01
    2016年秋季个人阅读计划
    个人总结
    梦断代码读后感03
    进度条16
    我的第一个小系统总结
    进度条15
    eclipse连接SqlServer2008(被它搞得惨兮兮)
    梦断代码读后感02
    Android ViewPager刷新解析
  • 原文地址:https://www.cnblogs.com/wuyou/p/3718348.html
Copyright © 2011-2022 走看看