java向下转型基础知识点及实例
作者:小妮浅浅 时间:2022-07-01 11:48:38
1、概念
向下转型就是父类对象转成子类对象。我们把一个父类引用 Animal类型的引用 给了一个 Bird类型 的引用,这就是向下转型
2、格式
子类 子类对象=(子类)父类实例
3、注意
向下转型的时候一定要进行强制类型转换
4、实例
class Animal {
public String name;
public void eat() {
System.out.println(this.name + " 正在吃");
}
}
class Cat extends Animal {
}
class Bird extends Animal {
public int age;
public void fly() {
System.out.println(this.name+"起飞");
}
}
public class Test extends TestDemo {
public static void main(String[] args) {
Animal animal = new Animal();
Bird bird = (Bird) animal;//必须进行强制类型转换
}
}
Java向下转型的意义
一开始学习 Java 时不重视向下转型。一直搞不清楚向下转型的意义和用途,不清楚其实就是不会,那开发的过程肯定也想不到用向下转型。
其实向上转型和向下转型都是很重要的,可能我们平时见向上转型多一点,向上转型也比较好理解。
但是向下转型,会不会觉得很傻,我是要用子类实例对象,先是生成子类实例赋值给父类引用,在将父类引用向下强转给子类
引用,这不是多此一举吗?我不向上转型也不向下转型,直接用子类实例就行了。
我开始学习Java时也是这么想的,这误区导致我觉得向下转型就是没用的。
随着技术的提升,我在看开源的项目学习,发现很多地方都用了向下转型的技术,这就让我重视了起来,想要重新来复习(学习)这个知识点。也是搜索了许多博客文章,但都没具体说明向下转型,只是给了例子演示怎么使用,反而是向上转型讲了一堆(可能是我没找到)。
来源:https://www.py.cn/java/jichu/30580.html
标签:java,向下转型
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
JavaWeb如何实现禁用浏览器缓存
2021-09-13 01:27:45
聊一聊Java的JVM类加载机制
2023-11-08 03:58:37
![](https://img.aspxhome.com/file/2023/5/58755_0s.png)
springBoot项目如何实现启动多个实例
2021-09-22 00:13:47
![](https://img.aspxhome.com/file/2023/0/70500_0s.png)
Spring Bean后处理器详细介绍
2021-06-27 07:29:06
![](https://img.aspxhome.com/file/2023/4/61854_0s.png)
详解spring boot引入外部jar包的坑
2021-07-29 10:49:49
![](https://img.aspxhome.com/file/2023/4/61314_0s.jpg)
Java并发编程预防死锁过程详解
2023-11-09 15:33:58
Java中的main函数的详细介绍
2021-10-03 16:09:16
java 如何判断是否是26个英文字母
2023-11-29 15:51:59
springboot+vue部署按照及运行方法
2023-07-15 06:16:09
Groovy的规则脚本引擎实例解读
2023-07-11 21:24:04
![](https://img.aspxhome.com/file/2023/6/65186_0s.jpg)
spring data jpa 查询自定义字段,转换为自定义实体方式
2022-10-12 04:52:43
![](https://img.aspxhome.com/file/2023/4/71634_0s.png)
Spring Data Jpa 复杂查询方式总结(多表关联及自定义分页)
2023-11-21 10:01:27
![](https://img.aspxhome.com/file/2023/2/59722_0s.png)
Java 中的Printstream介绍_动力节点Java学院整理
2021-12-21 06:08:36
java 中sendredirect()和forward()方法的区别
2021-11-07 18:39:28
基于java构造方法Vector修改元素源码分析
2023-11-25 10:54:56
![](https://img.aspxhome.com/file/2023/7/60237_0s.png)
Java文件上传下载、邮件收发实例代码
2022-07-05 06:40:00
解析Android 8.1平台SystemUI 导航栏加载流程
2023-06-23 15:21:21
关于线程池你不得不知道的一些设置
2021-06-08 11:34:45
![](https://img.aspxhome.com/file/2023/4/67444_0s.jpg)
使用webmagic实现爬虫程序示例分享
2021-10-08 22:10:26
java使用HashMap实现斗地主(有序版)
2021-08-30 10:24:10