[求助]关于上转型对象的问题。
代码如下: 
 package   File;   
 class   类人猿{ 
 	char   m= 'T '; 
 	void   crySpeck(String   s){ 
 		System.out.println(s);  		 
 	}  	 
 } 
 class   People   extends   类人猿{ 
 	char   m= 'A '; 
 	double   n=60; 
 	void   computer(int   a,int   b){ 
 		int   c=a+b; 
 		System.out.println(a+ "加 "+b+ "等于 "+c);  		 
 	} 
 	void   crySpeck(String   s){ 
 		System.out.println(m+ "** "+s+ "** "+m); 
 	} 
 } 
 public   class   File_5_101   { 
 	public   static   void   main(String   args[])   { 
 		People   wang=new   People(); 
 		类人猿   monkey=wang; 
 		monkey.crySpeck( "I   Love   This   Game!! "); 
 		System.out.println(monkey.m);/*这里为什么不是A呢?是只能操作隐藏成员变量吗?*/ 
 		People   zhang=(People)   monkey; 
 		zhang.computer(55,   33); 
 		zhang.m= 'W '; 
 		System.out.println(zhang.m);  		  		 
 	} 
 我有些疑问。 
 上转型对象操作重复的成员变量时,是在父类中操作,上转型对象操作的如果是隐藏方法,那就必须在子类中操作,是吗? 
------解决方案--------------------		People wang=new People(); 
 		类人猿 monkey=wang; 
 		monkey.crySpeck( "I Love This Game!! "); 
 		System.out.println(monkey.m);/*这里为什么不是A呢?是只能操作隐藏成员变量吗?*/   
 你声明monkey的类型是 类人猿 ,编译器限定了你只能访问它的属性和方法
------解决方案--------------------我用JB9.0运行了一下,得到下面的结果   
     A**I Love This Game!!**A   
     T   
     55加33等于88   
     W 
------解决方案--------------------People wang=new People(); 
 类人猿 monkey=wang;    
 第一句wang定义为People子类,并创建了实例 
 第二句monkey是类人猿父类,并将实例wang赋给了monkey   
 一方面,monkey虽然是被声明为类人猿父类,但它指向的内容却是子类People, 
 这一点可以调用System.out.println(monkey.getClass().toString() );输出是People; 
 因而,调用mokey.crySpeck( "I Love This Game!! ");时父类中的crySpeck方法被隐藏, 
 执行People中的crySpeck,而执行People.crySpeck时所用的m变量当然时子类People中的m变量 "A " 
 如果把People.crySpeck方法改为     
------解决方案--------------------接6楼 
            System.out.println(super.m+ "** "+s+ "** "+m); 
 将输出   T**I Love This Game!!**A   
 另一方面,monkey是被声明为类人猿父类了,所的它的成员变量表中,只有类人猿类的变量m, 
 因而,monkey.m=“T”,如果想输出子类People中m,可以用((People)monkey).m来输出。相反,如 
 果输出monkey.n,想输出其子类另一成员n的话,将会报错,因为系统在编译monkey.n这句话的 
 时候,在类人猿类定义中找不到n这个变量,除非你用((People)monkey).n会得到60