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