java 转型问题其实并不复杂,只要记住一句话:父类引用指向子类对象。
什么叫父类引用指向子类对象,且听我慢慢道来.
从2个名词开始说起:向上转型(upcasting) 、向下转型(downcasting).
举个例子:有2个类,Father是父类,Son类继承自Father。
Father f1 = new Son(); // 这就叫 upcasting (向上转型)
// 现在f1引用指向一个Son对象
Son s1 = (Son)f1; // 这就叫 downcasting (向下转型)
// 现在f1还是指向Son对象
第2个例子:
Father f2 = new Father();
Son s2 = (Son)f2; // 出错,子类引用不能指向父类对象
你或许会问,第1个例子中:Son s1 = (Son)f1;问什么 是正确的呢。
很简单因为f1指向一个子类对象,Father f1 = new Son(); 子类s1引用当然可以指向子类对象了。
而f2 被传给了一个Father对象,Father f2 = new Father();子类s1引用不能指向父类对象。
总结:
1。父类引用指向子类对象,而子类引用不能指向父类对象。
2。把子类对象直接赋给父类引用叫upcasting向上转型,向上转型不用强制转换。
如:Father f1 = new Son();
3。把指向子类对象的父类引用赋给子类引用叫向下转型(downcasting),要强制转换。
如:f1 就是一个指向子类对象的父类引用。把f1赋给子类引用s1即 Son s1 = (Son)f1;
其中f1前面的(Son)必须加上,进行强制转换。
分享到:
相关推荐
文章目录前言golang强制类型转换类型断言类型转换指针类型转换总结引用 前言 golang是强类型语言,有强制类型转换,但是不同于Java语言所使用的强制类型转换。 golang强制类型转换 golang语言中分为类型转换(type ...
2. 显示类型转换:显示类型转换是指使用强制类型转换符号将一种数据类型转换为另一种数据类型的过程,例如将int类型转换为float类型。 三、控制台输入输出方法 控制台输入输出方法是指使用System.in和System.out...
强制类型转换,也叫显式转换 运算符 * 算术运算符 * 赋值运算符 * 比较运算符 * 逻辑运算符 * 三元运算符 流程控制语句 * 选择结构:if语句、if else语句、if多分支语句、switch开关语句 * 循环结构:for循环、...
北京动力节点-Java编程零基础教程-066-Java基本语法-数据类型转换-强制转换.avi 北京动力节点-Java编程零基础教程-067-Java基本语法-数据类型转换-大小容量数据混合运算.avi 北京动力节点-Java编程零基础教程-068...
Java语言程序设计(一)七八九十章知识点总结 第七章:输入和输出流 一、数据流的基本概念 * 在 Java 中,把不同类型的输入、输出源抽象为流,其中输入或输出的数据成为数据流,用统一的接口表示。 * 数据流是...
引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。 18、heap和stack有什么区别。 栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式...
2.2.6 强制转换变量类型 2.2.7 Java数据类型、数组和标识符需要记忆的要点 2.3 Java中的运算符 2.3.1 赋值运算符 2.3.2 比较运算符 2.3.3 算术运算符 2.3.4 自增和自减运算符 2.3.5 更多的整数运算符 2.3.6 使用点...
1、 得到整数n从右数第4个数: int fourthBitFromRight = (n&8...6、布尔值和任何数字类型之间不能强制类型转换。 7、只有字符串常量会被共享,而表达式常量产生的结果并不共享。“= =”是判定两个串是否在同一位置。
教学难点 :・数值类型转换(强制转换、隐式转换)的用法; :・Switch语句的用法; 工程描述 :・工程1:猜数字游戏 教学方法 问题导引法:通过给学生提出实际编程中出现的问题来引入教学内容,使学生在主动分析、讨论...
第3章 继承与多态;回顾;本章内容;3.1 包;3.1 包;3.1.1 自定义包;...3.4.2 引用变量的强制类型转换 ;3.4.2 引用变量的强制类型转换 ;3.4.3 instance of运算符 ;3.4.4 学生实践练习;3.4.4 学生实践练习;总结
类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:ArrayIndexOutOfBoundsException 违背安全原则异常:SecturityException 文件已结束异常:EOFException 文件未...
3.3.1 强制类型转换——小数哪里去了 48 3.3.2 类型的转换在运算中悄悄进行 50 3.3.3 强制类型转换最优先 52 3.3.4 等号其实不简单 52 3.3.5 小心使用浮点数进行比较 53 3.3.6 boolean和char 55 3.3.7 不要...
例如,short 类型不能直接赋值给 long 类型,需要进行强制类型转换。 9. 方法重载 在 Java 中,方法可以被重载,即多个方法可以具有相同的名称,但参数列表不同。这种机制可以使得方法的调用更加灵活。 10. 静态...
2.5 强制数据类型转换 26 2.6 Java运算符 27 2.6.1.1 数学运算符 27 2.6.1.2 关系运算符 27 2.6.1.3 位运算符 27 2.6.1.4 条件运算符 28 2.7 Java流程控制 29 2.8 Java数组的定义和使用 31 2.9 数组的定义和内存分配...
强制类型转换:int ti; (byte) ti ; 强制转换,丢弃高位 宣告变量名称的同时,加上“final”关键词来限定,这个变量一但指定了值,就不可以再改变它的值 如:final int n1= 10; n1=20; 这就会报错 输出命令:...
3.3.1 强制类型转换——小数哪里去了 48 3.3.2 类型的转换在运算中悄悄进行 50 3.3.3 强制类型转换最优先 52 3.3.4 等号其实不简单 52 3.3.5 小心使用浮点数进行比较 53 3.3.6 boolean和char 55 3.3.7 不要...
2 强制类型转换: 11 第三章总结 运算符和条件结构 11 一 boolean类型 11 二 关系运算符: 12 三 if条件结构: 12 1 if语法结构和流程图: 12 2 if else语法结构和流程图: 13 3 多重if语法结构和流程图: 13 ...
【错误,强制类型转换可能会出现ClassCastException】 12. 一个类如果实现了某个接口,那么它必须覆盖该接口中的所有方法。【正确】 13. 当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不...
Java的基本数据类型(精彩视频:38分钟) 34 2.1 数据类型 34 2.1.1 整型 34 2.1.2 浮点型 35 2.1.3 字符型(char) 36 2.1.4 布尔型(boolean) 36 2.2 数据类型间的转换 36 2.2.1 自动转换 36 2.2.2 强制转换 ...
(一)转换为字符串 代码如下:X + ”toString()String() 函数转换为字符串一般是将函数体输出,不过可以重写其toString方法 (二)转换为数字 代码如下:parseInt(),parseFloat() ...各类型都有:对象名(要转换的