Java多态的向上转型和向下转型

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 }
原文地址:https://www.cnblogs.com/yanpingping/p/10538073.html