学习了编写 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的对象类型转换相关推荐

  1. java中对象类型转换_Java中的对象的类型转换介绍(附代码)

    本篇文章给大家带来的内容是关于Java中的对象的类型转换介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 向上转型:子类对象转为父类,父类可以是接口.公式:Father ...

  2. java中对象类型转换_Java 对象类型的转换

    对象类型的转换在Java编程中经常遇到,主要分为向上转型和向下转型,但一定要记住,无论是向上转型还是向下转型,两个类之间必须有继承关系.先来看看基本概念. 向上转型又被称作自动类型转换,就是子类引用的 ...

  3. 浅析Java中对象的创建与对象的数据类型转换

    这篇文章主要介绍了Java中对象的创建与对象的数据类型转换,是Java入门学习中的基础知识,需要的朋友可以参考下 Java:对象创建和初始化过程 1.Java中的数据类型     Java中有3个数据 ...

  4. Java对象类型转换

    将一个类型强制转换成另一个类型的过程被称为类型转换.本节所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象.当对不存在继承关系的对象进行强制类型转换时,会抛出 Java 强制类型转换(ja ...

  5. java js 转换_[Java教程]javascript 类型转换。

    [Java教程]javascript 类型转换. 0 2016-10-11 18:00:06 目录: 1 : 伪对象 2 : 转换为字符串 3 : 数字转字符串 4 : 转换为数字 5 : 转换为Bo ...

  6. 1.5 对象类型转换:向上转型和向下转型

    将一个类型强制转换成另一个类型的过程被称为类型转换.本节所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象.当对不存在继承关系的对象进行强制类型转换时,会抛出 Java 强制类型转换(ja ...

  7. JAVA学习笔记--类型转换(父类子类 Object 基本类型 String) 拆装箱 包装类

    最近一段时间忙着学习JAVA,本来net学的也不怎么好,趁着这个机会转下方向学习JAVA.不过.NET core的开源还是有点搞头的,微软了解一下.接下来几天我也会陆续写一些内容关于线程和集合等方面, ...

  8. java 调用对象的方法_JAVA调用对象方法的执行过程

    JAVA调用对象方法的执行过程: ①.编译器查看对象的声明类型和方法名.假设调用x.f(parameter),  且隐式参数x声明为C类型的对象,有可能在C对象中存在多个参数类型和参数个数不同的f的方 ...

  9. Java中数据类型转换大全(个人总结)

    一.字符串转换为其他类型 1.将字符串转化为int型 (1)方法一 int i = Integer.parseInt(String str); (2)方法二 int i = Integer.value ...

最新文章

  1. 开发者必备!Github 上 1.6W 星的「黑魔法」,早知道就不会秃头了
  2. WordPress主题制作函数
  3. 如何为程序分配合适的栈空间?
  4. c语言1到20找最大和最小相邻,一组数据里面怎样查找相邻和相同的整数算法设计解决方案...
  5. 第一章 处理器体系结构
  6. global全局变量
  7. 数据挖掘:围绕 统计与概率、分类与聚类、检索方法 ,原理演示或应用程序
  8. sdhc 读写 扇区 linux,SD卡读写扇区注意事项(转)
  9. spring中IOC的简单使用
  10. OpenInfra基金会成立多元化董事会领袖组,任命总干事助推OpenInfra下一个十年的发展...
  11. HP惠普笔记本电脑暗影精灵5 OMEN by HP 15-dh0153tx原装出厂Win10系统恢复原厂OEM系统
  12. python geany是什么_Geany
  13. 关于华为的工作情况的一些解答
  14. 关于GPS坐标转换(一)
  15. 这里有五种身份证提取出生年月的格式
  16. 南下打工潮正在远去!去年千万人返乡,农业的大转折正在到来
  17. Geogebra 教程之 02 Geogebra初学者的 8 个基本要素
  18. 魔兽美服服务器维护,心得:美服12小时纯任务练级获服务器第一90级
  19. 第一篇博客——C语言实现简单的学生成绩管理系统
  20. 什么蓝牙耳机最耐用?2022公认四款最耐用的蓝牙耳机

热门文章

  1. linux 复制并创建文件夹,Linux_文件及文件夹[创建][复制][移动][删除][重命名]
  2. Android5.1中Contacts模块拨号加载联系人信息流程
  3. 微信JS-SDK 微信分享接口开发(介绍版)
  4. IM即时通讯设计----聊天服务(附源码)
  5. popstate_操纵浏览器历史记录--popstate() history.pushState()
  6. 【那啥 完结撒花】tas平台“例子”中的模板整理(上)
  7. 2022级生物考研各校QQ答疑群
  8. 中国人保为北京洁美克工贸有限公司承保产品责任险,为消费者保驾护航
  9. 比尔.盖茨哭了——微软全部序列号
  10. C++中创建二维数组的四种方法