java温习*(13):关于向下转型易出现错误总结

1、向下转型需在满足向上转型前提下进行

譬如:如下图所示代码中,父类Person及两个子类Chinese,French,子类中既有重写父类的方法,又有各自独立的方法。

图片描述

测试类中:先经过向上转型设置one指向Chinese,后由French强转one,此时虽然编译不会报错,但会产生运行时异常。

图片描述

图片描述

因此:请注意,向下转型时,不允许转为非原始类型,即“哪来回哪去”

2、类型转换时的括号应用

接上面父类Person及两个子类Chinese,French代码,此时测试类中,先经过向上转型设置one指向Chinese,后希望实现强转回Chinese进而调用独有的Taijiquan方法。由下图可见,编译时即产生异常。

图片描述

原因为:此时由于运算符优先级,会优先执行one.Taijiquan(); 该方法运行后才会进行Chinese类型转换。但经过上一步的向上转型,one无法调用Chinese特有的Taijiquan方法。

图片描述

修订方法:

图片描述

此时会在执行完Chinese类型转换后,才会进行Taijiquan方法。

图片描述

热门文章

暂无图片
编程学习 ·

Centos7下为Open-falcon部署OpenTsdb

一边安装一边写,写得略乱安装OpenTsdb需要HBase,HBase需要Zookeeper和HDFS这一串都是apache家的,安装java是必须的yum install -y java一、安装Zookeeper在五个节点上部署zk下载tar包https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.6.1/apache-zookeep…
暂无图片
编程学习 ·

初见springBoot

如果本文对您有所帮助,可以点一下赞👍本文只是学习笔记,欢迎指错,转载标明出处环境:JDK 1.8Mysql 5.5maven 3.6.3idea 20191、SSM框架和SpringBoot区别因为当springboot 嵌入springmvc的时候很多人以为它就是另一种web框架了,这是一种误区。事实上它和原有的springmvc相…
暂无图片
编程学习 ·

Unity性能优化之 Profiler

Profiler主界面 打开方法为上方工具条 Windows-Analysis-Profiler(我也正在学习此功能使用,如有那部分错了还请指出QVQ)左上角可以勾选我们要查看的部分 这里以内存和CPU做演示,选中左边的Memory后下方的内容框就会变化如图 unity会在运行时自动获取每一帧的内存占用数据项…
暂无图片
编程学习 ·

c++ string操作

c++ string操作 #include <iostream> #include <vector> #include <string> #include <algorithm> using namespace std;void test01() {///*string& operator=(const char* s)* string& operator=(const string &s)* string& operato…
暂无图片
编程学习 ·

Spring Boot 集成 WebSocket 实现服务端推送消息到客户端

假设有这样一个场景:服务端的资源经常在更新,客户端需要尽量及时地了解到这些更新发生后展示给用户,如果是 HTTP 1.1,通常会开启 ajax 请求询问服务端是否有更新,通过定时器反复轮询服务端响应的资源是否有更新。ajax 轮询在长时间不更新的情况下,反复地去询问会对服务器…
暂无图片
编程学习 ·

KMP算法

KMPKMP主要使用场景场景注意事项结构模板结构模板主体初始化建立前缀表移动处理前缀表循环匹配实现cpp经典问题字符串模式匹配问题描述例题演示实现cpp参考文献 KMP 主要使用场景场景字符串模式匹配注意事项KMP需要输入两个字符串,使用string的时候自带长度,使用纯c的时候请自己…
暂无图片
编程学习 ·

Java继承多态面试题

1.多态的实现原理2.面向对象的特征之一——多态2.1多态的定义多态是同一个行为具有不同的表现形式或形态的能力。允许不同类的对象对同一消息做出响应,同一消息可以根据发送的对象不同采用不同的行为方式。对于面向对象,多态分为编译时多态和运行时多态,编译时多态是静态的,…
暂无图片
编程学习 ·

javaScript案例

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>电灯开关</title></head><body><img id="light" src="img/off.gif"><script>/*分析:1.获取图片对…
暂无图片
编程学习 ·

五篇机器阅读理解论文(Match-LSTM+Ptr,DCN,R-Net,QANet)介绍

以close-domain为例,MRC任务就是给定一篇文章和一些与文章相关的问题,要求模型给出问题的答案 MRC按照问答的形式不同大致可以分成四种任务填空型 多项选择型 片段抽取型 自由答案型首先来看一看数据集 填空型问答 所谓填空型问答是指给定一篇文章和一个缺失某个单词的句子作…
暂无图片
编程学习 ·

网上书城前端界面设计

网上书城界面设计前言界面设计首页登录注册书籍搜索购物车代码实现总结 前言 接着我的上一篇博客来,今天为大家分享的内容是网上书城项目的界面设计以及代码分析 网上书城项目需求分析、功能划分、数据库表设计、工具类介绍 界面设计 首页首页的话,主要涉及到了BootStrap的相…
暂无图片
编程学习 ·

json从立地到成佛

文章目录诞生于JavaScript,json的前世今生json含义json诞生搞清json兄弟姐妹,看清区别json VS xml小小翻译官,json的应用前端ajax+json异步传输:跨平台webservice:非关系数据库存储(Nosql)拒绝四不像,json语法有要求json语法规则json名称/值json对象json数组JavaScript对象…
暂无图片
编程学习 ·

Kafka中位移提交那些事儿

本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等之前我们说过,Consumer 端有个位移的概念,它和消息在分区中的位移不是一回事儿,虽然它们的英文都是 Offset。今天我们要聊的位移是 Consumer 的消费位移,它记录了Consumer 要消费的下一条消息的位移。这…
暂无图片
编程学习 ·

Java网络编程

端口号范围:0~65535,建议选择1024以上 UDP:面向无连接,数据不安全,速度快,不区分客户端和服务器(有发送端和接收端)(发短信) TCP:面向连接(三次握手),数据安全,速度略低,分为客户端和服务器(打电话) 1.UDP package day26;import java.io.IOException; import…
暂无图片
编程学习 ·

记录Linux学习2

远程登录到Linux服务器 为什么要远程登录到linux? 因为linux一般是装在机房中,而不是在自己电脑上的,我们需要在公司远程操控Linux系统,所以要远程登录到linux。 Xshell5(远程登录软件),XFtp5(远程上传下载文件的软件) Xshell [1] 是一个强大的安全终端模拟软件,它支…
暂无图片
编程学习 ·

C++的默认构造函数与构造函数

构造函数:C++用于构建类的新对象时需要调用的函数。 默认构造函数:未提供显式初始值时,用来创建对象的构造函数。 class testClass { public:testClass(); /* 默认构造函数 */testClass(int a, char b); /* 构造函数 */testClass(int a=10,char b…
暂无图片
编程学习 ·

tensorflow-serving布置facenet心得

这个的东西困扰我很久,终于弄成了。不知道我做的是不是太繁琐,如果有人做的更简单,希望指出,谢谢。docker中,做了两个容器,一个放的mtcnn,一个放的facent。他们并不是多模型布置的。mtcnn其中包括:pnet,rnet和onet,这三个是多模型布置。客户端通过调用mtcnn,得到返回…
暂无图片
编程学习 ·

Node.js入门

Nodejs入门 学习Nodejs建议1.了解客户浏览器与服务端后台交互过程,可以在以后的前端开发工作中与后端人员之间的沟通更加容易理解。虽然工作中不一定用的上Nodejs,但是通过对服务端开发的了解,能够让你在日常工作中与公司的后端人员之间的沟通变得更加轻松。2.了解服务端开发…