iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java向上转型和向下转型的区别说明
  • 926
分享到

Java向上转型和向下转型的区别说明

2024-04-02 19:04:59 926人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录向上转型和向下转型的区别1.代码实现2.实现向下转型3.此时执行程序简单认识向上转型和向下转型向上转型:父类引用指向子类对象向下转型:子类引用指向父类对象向上转型和向下转型的区别

向上转型和向下转型的区别

前言:

  • 向上转型:父类引用类型指向了子类的实例对象,此时无法使用子类里的成员变量以及方法。
  • 向下转型:通过引用类型强转,恢复了子类的成员变量以及方法。

1.代码实现

可以发现,父类虽然指向了子类的实例对象,但是并不能调用子类对象的方法,编译器报错。此时我们可以看作被隐藏了,那么怎样才可以把被隐藏的方法放出来呢?此时就需要向下转型。

2.实现向下转型

将a强转为Son引用类型。

((Son)a).sleep();   //调用子类的sleep方法

3.此时执行程序

成功向下转型,那么这样有什么作用呢?

其实,无论是上转还是下转都是为了让类的使用范围和适用范围发生变化,以便操作不同范围的变量或者方法。

这样其实就是一个java的继承多态,利于程序扩展。

我们需要这种设计方式,才会写出更易维护、简洁的代码。

简单认识向上转型和向下转型

向上转型:父类引用指向子类对象

例如:子类student继承了父类person

Person person = new Student();

向上转型后的变化

关于方法:person可以调用子类和父类公用的方法(如果子类重写了父类的方法,则调用子类的方法),子类特有的方法无法调用。

关于属性: person可以调用父类的属性,不可以调用子类的属性。

向上转型的作用

减少一些重复的代码

对象实例化的时候可以根据不同需求实例化不同的对象

向下转型:子类引用指向父类对象

Father f=new Son() //先向上转型
Son s=(Son) f;//再进行向下转型,进行强制转换,子类引用s,父类引用f

向下转型的条件:先向上转型,再向下转型。没有经过向上转型,会提示编译错误。

向下转型后的变化

关于方法:可以调用子类的所有方法,和属性,类型转为子类

关于属性:调用的属性为子类的属性。

向下转型的作用:向上转型时 ,会遗失子类对象独有的其他方法;可以通过向下转型在重新转回。

这种转型可能存在转型失败地风险,因为父类地范围更广,如果不确定父类对象就是该子类的对象,不推荐使用向下转型。

Person person = new Student();
Teacher teacher = (Teacher) person; // 不安全

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Java向上转型和向下转型的区别说明

本文链接: https://www.lsjlt.com/news/151048.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java向上转型和向下转型的区别说明
    目录向上转型和向下转型的区别1.代码实现2.实现向下转型3.此时执行程序简单认识向上转型和向下转型向上转型:父类引用指向子类对象向下转型:子类引用指向父类对象向上转型和向下转型的区别...
    99+
    2024-04-02
  • Java中向上转型与向下转型的区别有什么
    Java中向上转型与向下转型的区别有什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 Java 向上转型和向下转型的详解转型是在继承的基础上而言的,继承是面向对象语...
    99+
    2023-05-31
    java ava 向上转型
  • java向上转型与向下转型详解
    本文实例为大家分享了java向上转型与向下转型的具体代码,供大家参考,具体内容如下 基础知识:Java中的继承机制使得一个类可以继承另一个类,继承的类称为子类,被继承的类称为父类。在...
    99+
    2024-04-02
  • java向上转型和向下转型的概念是什么
    Java中的向上转型(Upcasting)和向下转型(Downcasting)是指对象在继承关系中的类型转换。向上转型是指将子类对象...
    99+
    2023-09-14
    java
  • Java向上向下转型详解
    Java之所以可以向上向下转型是依据Java三大特性之一的多态性,而转型就是对象的多态性,需要注意的是转型的前提是方法覆写 转型: [自动,90%] (1)对象的向上转型:父类 父类...
    99+
    2024-04-02
  • Java怎么正确的向上转型与向下转型
    在Java中,向上转型和向下转型是用来处理父类与子类之间的关系的。 向上转型:将一个子类的对象转换为父类的对象。这样可以实现父类引...
    99+
    2024-03-01
    Java
  • 学习Java之如何正确地向上转型与向下转型
    目录一. 类型转型二. 向上转型1. 概念2. 特点3. 语法4. 案例三. 向下转型1. 概念2. 特点3. 语法4. 案例四. 结语一. 类型转型 将一个类型转换成另一个类型的过...
    99+
    2023-05-19
    Java向上转型与向下转型 Java向上转型 Java向下转型
  • C++ 函数继承详解:什么是向上转型和向下转型?
    继承中,向上转型将派生类转换为基类,向下转型将基类转换为派生类。向上转型安全,信息可能丢失;向下转型危险,须确保存在对应派生类,否则返回 nullptr。 C++ 函数继承中的向上转型...
    99+
    2024-04-30
    c++ 函数继承
  • java Long类型转为String类型的两种方式及区别说明
    目录java Long类型转为String类型1、Long.ValueOf("String")返回Long包装类型数据2、Long.parseLong("String")返回long...
    99+
    2024-04-02
  • java向下转型指的是什么意思
    这篇文章将为大家详细讲解有关java向下转型指的是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、概念向下转型就是父类对象转成子类对象。我们把一个父类引用 Animal类型的引用 给了一个 Bi...
    99+
    2023-06-15
  • java多态向下转型怎么实现
    Java中实现向下转型的方式是使用强制类型转换符((子类类型) 父类对象),将父类对象转换为子类类型。 例如,有一个父类Animal...
    99+
    2023-10-24
    java
  • java中向上转型发生的示例代码
    这篇文章主要介绍java中向上转型发生的示例代码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、直接赋值public static void main(String[] ar...
    99+
    2023-06-15
  • java向下转型基础知识点及实例
    1、概念 向下转型就是父类对象转成子类对象。我们把一个父类引用 Animal类型的引用 给了一个 Bird类型 的引用,这就是向下转型 2、格式 子类 子类对象=(子类)父类实例 ...
    99+
    2024-04-02
  • java中多态的向上转型是什么意思
    今天就跟大家聊聊有关java中多态的向上转型是什么意思,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、说明向上转型就是把一个子类引用给一个父类引用,也就是父类引用 引用了子类的对象...
    99+
    2023-06-15
  • Keras中Sequential模型和Functional模型的区别及说明
    目录Sequential模型和Functional模型区别Sequential模型Functional模型总结Sequential模型和Functional模型区别 Sequenti...
    99+
    2022-12-17
    Keras中Sequential模型 Keras中Functional模型 Sequential模型和Functional模型区别
  • java向上转型发生的时机知识点详解
    1、直接赋值 public static void main(String[] args) { //父类引用 引用了 子类引用所引用的对象 Ani...
    99+
    2024-04-02
  • java多态的向上转型的概念及实例分析
    1、说明 向上转型就是把一个子类引用给一个父类引用,也就是父类引用 引用了子类的对象,即父类 父类对象 = 子类实例。 此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,而不...
    99+
    2024-04-02
  • Java请求转发和请求重定向区别详解
    目录前言1.定义不同2.请求方不同3.数据共享不同4.最终 URL 地址不同5.代码实现不同总结前言 在 Java 中,跳转的实现方式有两种:请求转发和请求重定向,但二者是完全不同的...
    99+
    2024-04-02
  • vue2与vue3双向数据绑定的区别说明
    目录vue2与vue3双向数据绑定区别Vue2双向数据绑定存在的问题原理vue3.0双向数据绑定Proxyvue语法:数据的双向绑定1.指令v-model2.v-model与修饰符3...
    99+
    2024-04-02
  • Java下数字类型的转换 (转)
    Java下数字类型的转换 (转)[@more@]作者:家居猫 各种数字类型转换成字符串型: String s = String.valueOf( value); // 其中 value 为任意一种数字类型。 字符串型转换成各种数字类型: S...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作