要给学生们讲卷子,不知道这个转型问题怎么讲,搜了几个例子,才发现这个例子最合适,也好懂。
向上转型,向下转型 _转型问题class   Chinese{   
向上转型,向下转型 _休闲_04            
向上转型,向下转型 _职场_05          
public   static   void   print(){   
向上转型,向下转型 _休闲_04                  System.out.println(
"this   is   中国人");   
向上转型,向下转型 _休闲_04                    
向上转型,向下转型 _职场_10          }
   
向上转型,向下转型 _休闲_04          
向上转型,向下转型 _职场_12  }
   
向上转型,向下转型 _休闲_13  
class   Guangdongren   extends   Chinese{   
向上转型,向下转型 _转型问题_16          
public   static   void   print(){   
向上转型,向下转型 _休闲_04                  System.out.println(
"this   is   广东人   ");   
向上转型,向下转型 _职场_10          }
   
向上转型,向下转型 _休闲_04            
向上转型,向下转型 _职场_12  }
   
向上转型,向下转型 _职场_24  
class   HunanRen   extends   Chinese向上转型,向下转型 _休闲_03   
向上转型,向下转型 _休闲_33  
class   GuangzhouRen   extends   Guangdongren向上转型,向下转型 _休闲_03   
向上转型,向下转型 _职场_41    
向上转型,向下转型 _休闲_42  
public   class   Test   {   
向上转型,向下转型 _休闲_04            
向上转型,向下转型 _休闲_46            
public   static   void   main(String   args[]){   
向上转型,向下转型 _休闲_04                      
向上转型,向下转型 _休闲_04                    Chinese   c
=new   Chinese();//这样编译可以通过,但运行会抛出异常   
向上转型,向下转型 _休闲_04
                      HunanRen   h=(HunanRen)c;//     这是因为向下转型错误,中国人不一定是湖南人,这里   
向上转型,向下转型 _休闲_04                                                                    
//是不是可以这样理解要将c强制转换成一个HunanRen     
向上转型,向下转型 _休闲_04
                      
向上转型,向下转型 _休闲_04                    HunanRen   h
=new   HunanRen();//这样就没有问题,这是向上转型,   
向上转型,向下转型 _休闲_04
                    Chinese   c=(Chinese)h;         //湖南人一定是中国人这是是否可以理解为将h转换成Cinese   
向上转型,向下转型 _休闲_04
                Chinaese   h=new   HunanRen();//向上转型   
向上转型,向下转型 _休闲_04
                    h.print();   
向上转型,向下转型 _职场_10            }
   
向上转型,向下转型 _职场_12      }
   
向上转型,向下转型 _职场_41