日期:2014-05-17  浏览次数:20861 次

c# 继承 疑惑求解答。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication4
{
    class Program
    {
        public  int a = 100;
        public void min()
        {
            this.a--;
        }
        static void Main(string[] args)
        {
            test t = new test();
            t.min();
            Console.WriteLine(t.a);
            Console.WriteLine(t.getA());
            Console.Read();
        }
    }
    class test : Program
    {
        int a = 8;
        public void plus()
        {
            this.a++;
        }
        public int getA()
        {
            return base.a;
        }
    }
}

代码如上,我在调试时  t.min(); 中的 this.a--   this指向的是test  但是为什么this.a 却是使用的Program里的字段a 而不是test里的字段a。
继承 c#

------解决方案--------------------
Program里的字段a跟test里的字段a根本没有任何继承(或者别的什么)关系,这是首先要搞清楚的。

然后,方法min“是针对哪一个字段a”就能搞清楚了。
------解决方案--------------------
假使你说的成立,那么这意味着,“如果基类有一个同名的变量”,那么你就可以访问继承类中的同名private变量了。你觉得这样的编程语言是不是很滑稽。