Java多态的向上转型和向下转型
向上转型:(子类转为父类,自动转型)
格式 :父类类型 变量名 = new 子类类型();
注:子类赋值给父类,那这时这个父类就能调用子类的方法
向下转型:(父类转为子类,强制转型)
格式: 子类类型 变量名 = (子类类型) 父类类型的变量;
注:这个只能转换上边那种是从子类转为父类的“形式父类”;
而直接创建的父类对象,是无法向下转型的;也就是说调用的还是子类的方法而并不是父类的方法。
例子如下:
父类:
1 package com.duotai2.demo; 2 3 public class Fu { 4 public static int num=66; 5 public void show(){ 6 System.out.println("Fu的显示"); 7 } 8 }
子类:
1 package com.duotai2.demo; 2 3 public class Fu { 4 public static int num=66; 5 public void show(){ 6 System.out.println("Fu的显示"); 7 } 8 }
测试:
1 package com.duotai2.demo; 2 3 public class Test { 4 public static void main(String[] args) { 5 //子类转为父类(向上转型) 6 Fu f=new Zi(); 7 //调用子类的方法 8 f.show(); 9 //父类转为子类 10 Zi zhuan=(Zi)f; 11 //调用其实还是子类的方法 12 zhuan.show(); 13 } 14 }