一个在C#中的语法,让我费解好几天的问题,请大家指点一下吧,急啊!救命啊?
using   System; 
 class   A 
 { 
 	private   int   age=20; 
 	public   static   void   Main(string[]args) 
 	{ 
 		B   b=new   B(); 
 		Console.WriteLine(b.age);//不明白,此时编译也不提示错误,为什会输出20呢?应当输出子类中自己已的域age的值30才对啊,还有就算难道私有成员在c#中也能继承? 
 	} 
 } 
 class   B:A 
 { 
 	private   int   age=30; 
 } 
------解决方案--------------------因为你的main方法在A内部,所以可以访问A的私有变量。而为什么不输出B的私有变量,那就要你自己考虑了,你不能也不应该知道一个类的私有变量是什么。你所知道的仅仅是B继承了A而已,对于B的私有成员一无所知,那么你在A里当然也不能访问B的私有变量age了。   
 如果你说的是没错的话,那倒是Java里的语法不合理了,既然A内部能访问A的私有变量,而B继承了A,最后A却不能访问B里面属于A私有的那部分? 
 试试下面这段代码结果怎么样? 
 class A 
 { 
 private int age=100; 
 public static void main(String[]args) 
 { 
 B b = new B(); 
 System.out.println(b.age);//报错 
 A a = new B(); 
 System.out.println(a.age);//这里就不报错? 
 } 
 } 
 class B extends A 
 {   
 } 
------解决方案--------------------main是static的,不能访问非static的int,把那句换成private static int age=20;