是继承类在内存中的加载形式还是多态问题引起的超类this变为子类对象?
为了方便,我将程序简化了。   
 public   class   A{ 
 	public   A(){ 
 		System.out.println( "A   constructor: "   +   this); 
 	}   
 	public   String   toString(){ 
 		return    "class   A "; 
 	}   
 }   
 public   class   B   extends   A{ 
 	public   B(){ 
 		System.out.println( "B   constructor: "   +   this); 
 	}   
 	public   String   toString(){ 
 		return    "Class   B "; 
 	}   
 }   
 public   class   Test{ 
 	public   static   void   main(String   args[]){ 
 	A   a   =   new   A(); 
 	B   b   =   new   B(); 
 	} 
 }   
 执行结果为 
 A   constructor:class   A 
 A   constructor:class   B 
 B   constructor:class   A   class   B   
 我的分析:A   a   =   new   A()调用了类A的构造函数打印了类A的toString(),第一行结果没问题。 
 	      第二行,B   b   =   new   B();首先调用了类A的构造函数,打印了B(A的子类)的toString()方法,我认为这是因为多态造成的,类A中this是类B的对象。可是老师说,是因为继承类在内存中加载的缘故。加载的时候将超类加载到子类中,所以,类A中的this是类B的对象。   
 可是如果将类A中多加任何一个方法,用类A中this调用,都可以调用类A的方法,如果说this是类B的,那么就不能调用。   所以我认为出现第二行结果是因为多态造成的。   
 各位前辈,我是初学,请多多指教。这到底是怎么回事啊。。。。。。。。。。。。。   
 我在线等~~~~~
------解决方案--------------------可是如果将类A中多加任何一个方法,用类A中this调用,都可以调用类A的方法,如果说this是类B的,那么就不能调用。==========> 为什么不能?B类是A类的子类,难道子类(B)不能调用父类(A)的方法?那怎么叫继承呢??