这是个很基本的java问题,看下注释就清楚了
但由它可以联想出其它很多东西
package complex.java.cast;
/**
* 此类用于测试java的上下转型问题
*
* @author gaol
*
*/
// 车
public class Car {
public void print() {
System.out.println("我是一辆车");
}
/**
* 结论:java上转型不会有问题,但转型后引用的对象仍为子类<br>
* java下转型需要强制转换,只有原来引用的对象与转换的对象一致时才正确,<br>
* 否则会报java.lang.ClassCastException
*
* @param args
*/
public static void main(String[] args) {
Car b = new Car();// 这是一辆车
Kache kache = new Kache();// 这是一辆卡车
Tuolaji tuolaji = new Tuolaji();// 这是一辆拖拉机
b = kache;// 上转型 此时b就是一辆卡车
b.print();// 此时虽然类型为父类,但实际引用的对象仍为子类
// 输出:我是一辆卡车
// tuolaji = (Tuolaji)b;//下转型 强制把卡车变成拖拉机 肯定有问题(虽然编译不出错)
// tuolaji = (Tuolaji) new Car();// 下转型 强制把随便一辆车变成拖拉机 肯定有问题(虽然编译不出错)
kache = (Kache) b; // 下转型 强制把卡车变成卡车 这样是没有问题的
kache.print();
}
}
// 卡车
class Kache extends Car {
public void print() {
System.out.println("我是一辆卡车");
}
public void print1() {
System.out.println("我是一辆卡车");
}
}
// 拖拉机
class Tuolaji extends Car {
public void print() {
System.out.println("我是一辆拖拉机");
}
public void print1() {
System.out.println("我是一辆拖拉机");
}
}
分享到:
相关推荐
java转型
java 转型运算符 java 转型运算符 java 转型运算符 java 转型运算符
java 向下转型 程序 学习java必须要学习的经典案例,加油学习把
java向上转型.doc
java数据类型,向上转型和向下转型定义与概念。
给大家讲述了Java上转型和下转型对象的详细用法以及相关的代码分享,有兴趣的朋友可以学习下。
ElevatorSimulator是用java语言写的一款模拟电梯上下楼,有很好的界面,规范化的代码,功能很全!
JAVA RPG 游戏 控制上下左右 JAVA RPG 游戏 控制上下左右
主要介绍了 Java 向上转型和向下转型的详解的相关资料,需要的朋友可以参考下
这个是利用Java开发,借助于zookeeper来进行节点数据存储的服务器动态上下限感知系统(原先我们有三台服务器进行不停的接受FTP数据,但是这三台服务器在运行的过程中随时都有可能掉线或者断电,这样FTP中的数据就不能...
java的核心技术2的上下卷,是最新的版本
Java实现运用上转型以及对象抽象方法计算圆形或圆锥的面积、周长等成员变量
Java小游戏控制小鸟上下平衡源码,感兴趣可以下载试试。 Java小游戏控制小鸟上下平衡源码,感兴趣可以下载试试。 Java小游戏控制小鸟上下平衡源码,感兴趣可以下载试试。 Java小游戏控制小鸟上下平衡源码,感兴趣...
Java整合ONVIF云台控制获取RTPM流地址,控制摄像机左右上下角度
《JAVA核心技术(卷1):基础知识(原书第8版)》是《Java核心技术》的最新版,《Java核心技术》出版以来一直畅销不衰,深受读者青睐,每个新版本都尽可能快地跟上Java开发工具箱发展的步伐,而且每一版都重新改写了...
主要介绍了java poi设置生成的word的图片为上下型环绕以及其位置的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
NULL 博文链接:https://tonysmith.iteye.com/blog/1436395
java初学者在编写类,在调用方法,在静态方法与动态方法使用会出现的一些错误。 学习后 能初步了解自己的错误的原因 以及遇到这种错误的改正方法 避免下次踩坑
团队转型技术培训课,亲手制作,凝聚了本人对java的理解
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...