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

关于继承一段代码
C# code

  class test
    {
        public static void Main(string[] args)
        {
            string s = "' ";
            MainClass y = new MainClass();
            BaseClass x = y;
            x.i = 100;
            Console.WriteLine("{0} ,{1}", x.i, y.i);
            Console.ReadKey();
        }

    }
    class MainClass : BaseClass
    {
        public int i;
    }

    class BaseClass
    {
        public int i;
    }


输出结果为什么是100,0 在java里面输出结果也是一样的.求大神解释通俗点,小弟才疏学浅.

------解决方案--------------------
MainClass 的 i

BaseClass 的 i
一点关系都没有。
------解决方案--------------------
x是x,y是y,
------解决方案--------------------
你这里没有override(字段也不允许override),那么你当前是什么类型,就访问的那个类型下面对应的字段,不可能会混淆的。
------解决方案--------------------
1. string s = "' "; 有什么用?
2. 不要将字段public
3. 尽管代码不规范,但程序隐含使用的new关键字,也就是hide,并没有override,所以各是各。