Java的对象类型转换
学习了编写 Java 程序中的对象类型转换,而在编写Java程序时,都会遇到Java中的对象类型转换。所以往下面学习时,应当注意以下几点:
Java对象类型转换:对象类型转换,是指存在继承关系的对象,
不是任意类型的对象,分别是向上转型(upcasting)和向下转型(downcasting)。
向上转型:父类引用指向子类对象为向上转型。fatherClass 是父类名称或接口
名称,obj 是创建的对象,sonClass 是子类名称。
向上转型就是把子类对象直接赋给父类引用,不用强制转换。
使用向上转型可以调用父类类型中的所有成员,
不能调用子类类型中特有成员,最终运行效果看子类的具体实现。
向下转型:与向上转型相反,子类对象指向父类引用为向下转型。fatherClass 是父类名称,obj 是创建的对象,sonClass 是子类名称。
向下转型可以调用子类类型中所有的成员,不过需要注意的是如果父类引用对象
指向的是子类对象,那么在向下转型的过程中是安全的,也就是编译是不会出错误。
但是如果父类引用对象是父类本身,那么在向下转型的过程中是不安全的,
编译不会出错,但是运行时会出现我们开始提到的 Java 强制类型转换异常,一般使用 instanceof 运算符来避免出此类错误。
创建对象:对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:
声明:声明一个对象,包括对象名称和对象类型。
实例化:使用关键字new来创建一个对象,只是为对象在内存中开辟空间。
初始化:使用new创建对象时,会调用构造方法初始化对象,对象中的值赋初始值。
访问实例变量和方法,现在f1引用指向一个Son对象,
现在f1还是指向Son对象,出错,子类引用不能指向父类对象,
因为f1指向一个子类对象子类s1引用当然可以指向子类对象了。
而f2 被传给了一Father对象,子类s1引用不能指向父类对象。
Java的对象类型转换相关推荐
- java中对象类型转换_Java中的对象的类型转换介绍(附代码)
本篇文章给大家带来的内容是关于Java中的对象的类型转换介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 向上转型:子类对象转为父类,父类可以是接口.公式:Father ...
- java中对象类型转换_Java 对象类型的转换
对象类型的转换在Java编程中经常遇到,主要分为向上转型和向下转型,但一定要记住,无论是向上转型还是向下转型,两个类之间必须有继承关系.先来看看基本概念. 向上转型又被称作自动类型转换,就是子类引用的 ...
- 浅析Java中对象的创建与对象的数据类型转换
这篇文章主要介绍了Java中对象的创建与对象的数据类型转换,是Java入门学习中的基础知识,需要的朋友可以参考下 Java:对象创建和初始化过程 1.Java中的数据类型 Java中有3个数据 ...
- Java对象类型转换
将一个类型强制转换成另一个类型的过程被称为类型转换.本节所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象.当对不存在继承关系的对象进行强制类型转换时,会抛出 Java 强制类型转换(ja ...
- java js 转换_[Java教程]javascript 类型转换。
[Java教程]javascript 类型转换. 0 2016-10-11 18:00:06 目录: 1 : 伪对象 2 : 转换为字符串 3 : 数字转字符串 4 : 转换为数字 5 : 转换为Bo ...
- 1.5 对象类型转换:向上转型和向下转型
将一个类型强制转换成另一个类型的过程被称为类型转换.本节所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象.当对不存在继承关系的对象进行强制类型转换时,会抛出 Java 强制类型转换(ja ...
- JAVA学习笔记--类型转换(父类子类 Object 基本类型 String) 拆装箱 包装类
最近一段时间忙着学习JAVA,本来net学的也不怎么好,趁着这个机会转下方向学习JAVA.不过.NET core的开源还是有点搞头的,微软了解一下.接下来几天我也会陆续写一些内容关于线程和集合等方面, ...
- java 调用对象的方法_JAVA调用对象方法的执行过程
JAVA调用对象方法的执行过程: ①.编译器查看对象的声明类型和方法名.假设调用x.f(parameter), 且隐式参数x声明为C类型的对象,有可能在C对象中存在多个参数类型和参数个数不同的f的方 ...
- Java中数据类型转换大全(个人总结)
一.字符串转换为其他类型 1.将字符串转化为int型 (1)方法一 int i = Integer.parseInt(String str); (2)方法二 int i = Integer.value ...
最新文章
- 开发者必备!Github 上 1.6W 星的「黑魔法」,早知道就不会秃头了
- WordPress主题制作函数
- 如何为程序分配合适的栈空间?
- c语言1到20找最大和最小相邻,一组数据里面怎样查找相邻和相同的整数算法设计解决方案...
- 第一章 处理器体系结构
- global全局变量
- 数据挖掘:围绕 统计与概率、分类与聚类、检索方法 ,原理演示或应用程序
- sdhc 读写 扇区 linux,SD卡读写扇区注意事项(转)
- spring中IOC的简单使用
- OpenInfra基金会成立多元化董事会领袖组,任命总干事助推OpenInfra下一个十年的发展...
- HP惠普笔记本电脑暗影精灵5 OMEN by HP 15-dh0153tx原装出厂Win10系统恢复原厂OEM系统
- python geany是什么_Geany
- 关于华为的工作情况的一些解答
- 关于GPS坐标转换(一)
- 这里有五种身份证提取出生年月的格式
- 南下打工潮正在远去!去年千万人返乡,农业的大转折正在到来
- Geogebra 教程之 02 Geogebra初学者的 8 个基本要素
- 魔兽美服服务器维护,心得:美服12小时纯任务练级获服务器第一90级
- 第一篇博客——C语言实现简单的学生成绩管理系统
- 什么蓝牙耳机最耐用?2022公认四款最耐用的蓝牙耳机
热门文章
- linux 复制并创建文件夹,Linux_文件及文件夹[创建][复制][移动][删除][重命名]
- Android5.1中Contacts模块拨号加载联系人信息流程
- 微信JS-SDK 微信分享接口开发(介绍版)
- IM即时通讯设计----聊天服务(附源码)
- popstate_操纵浏览器历史记录--popstate() history.pushState()
- 【那啥 完结撒花】tas平台“例子”中的模板整理(上)
- 2022级生物考研各校QQ答疑群
- 中国人保为北京洁美克工贸有限公司承保产品责任险,为消费者保驾护航
- 比尔.盖茨哭了——微软全部序列号
- C++中创建二维数组的四种方法