当前位置: 首页 > news >正文

java多态——向下转型

引入

前面我尝试了一下这个代码

package b;public class main_ {public static void main(String[] args) {//向上转型,父类的引用转向了子类的father_ animal=new graduate();Object obj=new graduate();System.out.println(animal.name);System.out.println(obj.name);}}

按道理来说,object是所有类的父类。应该可以obj.name的 

ai说了

由于obj被声明为Object类型,您不能直接调用graduate类中定义的特有方法或属性。如果您需要调用graduate类特有的方法或属性,您需要将obj向下转型(downcasting)为graduate类型:

我们不能改对象,只能改引用,例如这个男的叫李明。男的不能改,但名字可以改为王明

我们在这里

father_ father=new graduate();

父                                子

graduate gat=(graduate)father;

强迫father的类型转换

原先我们father指向graduate这个对象,是父类的这个编译类型的,只能调用父类的方法

现在我们又用graduate编译类型的gat对graduate对象引用,,调用子类的方法

为什么我们要求父类的引用必须指向的是当前目标类型的对象

如果我们用

Dog dog=(dog)animal

那这肯定错了,因为我们原先是把animal指向了猫对象,现在这样的话是把狗强制转化为猫了

这就表示向下转型

相关文章:

  • Spring boot 随笔 1 DatasourceInitializer
  • 【2024新版】银系统源码/超市收银系统/智慧新零售/ERP进销存管理/线上商城/商户助手
  • c++ QT 实现QMediaPlayer播放音频显示音频级别指示器
  • Kotlin 对象
  • 【机器学习】探索未来科技的前沿:人工智能、机器学习与大模型
  • SpringBoot六种API请求参数读取方式
  • 请描述Vue常用的修饰符
  • 太速科技-基于3U VPX 4核8线程I7 X86主板
  • 事务与并发控制
  • 【康耐视国产案例】AI视觉相机创新 加速商超物流数智化转型
  • sudo apt update sudo: apt: command not found
  • 【OceanBase诊断调优】—— obdiag 工具助力OceanBase数据库诊断调优(DBA 从入门到实践第八期)
  • K8s中配置使用ingress
  • 揭秘拼多多API:智能电商时代的数据驱动新篇章
  • Jmeter性能测试-【关联,提取器】
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • es6(二):字符串的扩展
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • JavaScript 基础知识 - 入门篇(一)
  • JavaScript函数式编程(一)
  • Java应用性能调优
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Lucene解析 - 基本概念
  • Mysql5.6主从复制
  • Rancher如何对接Ceph-RBD块存储
  • Ruby 2.x 源代码分析:扩展 概述
  • Spark学习笔记之相关记录
  • vue脚手架vue-cli
  • 高程读书笔记 第六章 面向对象程序设计
  • 基于HAProxy的高性能缓存服务器nuster
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 排序算法学习笔记
  • 使用 Docker 部署 Spring Boot项目
  • 网页视频流m3u8/ts视频下载
  • 我的zsh配置, 2019最新方案
  • 我是如何设计 Upload 上传组件的
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 终端用户监控:真实用户监控还是模拟监控?
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • ionic异常记录
  • 浅谈sql中的in与not in,exists与not exists的区别
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #考研#计算机文化知识1(局域网及网络互联)
  • (1)Hilt的基本概念和使用
  • (7)摄像机和云台
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (含答案)C++笔试题你可以答对多少?
  • (五)c52学习之旅-静态数码管
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (转)Linux整合apache和tomcat构建Web服务器