C#学习-new

来源:互联网 发布:网络主播 编辑:程序博客网 时间:2024/05/21 10:01

using System;

namespace TestNew

{
    class Number
    {
        public static int i = 123;

        public void ShowInfo()
        {
            Console.WriteLine("base class---");
        }

        public virtual void ShowNumber()
        {
            Console.WriteLine(i.ToString());
        }
    }

    class IntNumber : Number
    {
        new public static int i = 456;

        public void ShowInfo()
        {
            Console.WriteLine("Derived class---");
        }

        public void ShowNumber()
        {
            Console.WriteLine("Base number is {0}", Number.i.ToString());
            Console.WriteLine("New number is {0}", i.ToString());           
        }
    }

    class Tester
    {
        public static void Main(string[] args)
        {
            Number num = new Number();
            num.ShowNumber();
            IntNumber intNum = new IntNumber();
            intNum.ShowNumber();

            Number number = new IntNumber();
            //究竟调用了谁?
            number.ShowInfo();
            //究竟调用了谁?
            number.ShowNumber();
            Console.ReadLine();
        }
    }
}

结果:

123
Base number is 123
New number is 456
base class---
123


namespace TestNew

{
    class Number
    {
        public static int i = 123;

        public void ShowInfo()
        {
            Console.WriteLine("base class---");
        }

        public virtual void ShowNumber()
        {
            Console.WriteLine(i.ToString());
        }
    }

    class IntNumber : Number
    {
        new public static int i = 456;

        public new virtual void ShowInfo()
        {
            Console.WriteLine("Derived class---");
        }

        public override void ShowNumber()
        {
            Console.WriteLine("Base number is {0}", Number.i.ToString());
            Console.WriteLine("New number is {0}", i.ToString());           
        }
    }

    class Tester
    {
        public static void Main(string[] args)
        {
            Number num = new Number();
            num.ShowNumber();
            IntNumber intNum = new IntNumber();
            intNum.ShowNumber();

            Number number = new IntNumber();
            //究竟调用了谁?
            number.ShowInfo();
            //究竟调用了谁?
            number.ShowNumber();
            Console.ReadLine();
        }
    }
}

 

执行结果:

123
Base number is 123
New number is 456
base class---
Base number is 123
New number is 456