闫平平
写代码也要酷酷的!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

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 }
复制代码

 

posted on   写代码也要酷酷的  阅读(322)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
 
点击右上角即可分享
微信分享提示