对象的上转型对象

2023-11-06

1. 定义

如果B类是A类的子类或间接子类,当用B类创建对象b并将这个对象b的引用赋给A类对象a时,如:

A a;
a = new B();
OR
A a;
B b = new B();
a = b;

则称A类对象a是子类B对象b的上转型对象。


2. 性质

对象b的上转型a的实体是有子类B创建的,但是上转型对象会失去子类B的一些属性和功能。上转型对象具有以下特点:

  1. 上转型对象不能操作子类新增加的成员变量,不能使用子类新增的方法。即为较子类B失去一些属性和功能,这些属性和功能是新增的。
  2. 上转型对象可以操作子类继承或隐藏的成员变量,也可以使用子类继承的或重写的方法。即为上转型对象可以操纵父类原有的属性和功能,无论这些方法是否被重写。
  3. 上转型对象调用方法时,就是调用子类继承和重写过的方法。而不会是新增的方法,也不是父类原有的方法。
  4. 可以将对象的上转型对象再强制转换到一个子类对象,强制转换过的对象具有子类所有属性和功能。

3. 举例

如:

OutputStream output;
output = new FileOutputStream(filename);

并且根据Java API知

java.lang.Object
  java.io.OutputStream
     java.io.FileOutputStream

这时,output就是上转型对象啦。有什么特殊呢?就是output可以使用FileOutputStream从父类OutputStream那里继承来的方法和重写的方法,而不能使用子类FileOutputStream自己新增的方法啦。最后,这种方法是很常用的哦。。。当父类有很多子类时,就能实现方法的多态。^_^

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对象的上转型对象 的相关文章

  • java字符串基础操作

    1 字符串的特点 java lang String使用了final修饰 不能被继承 字符串底层封装了字符数组及针对字符数组的操作算法 字符串一旦创建 对象内容永远无法改变 但字符串引用 可以重新赋值 Java字符串在内存中采用Unicode
  • 必须掌握的hashcode()方法

    一 hashcode是什么 1 hash和hash表是什么 想要知道这个hashcode 首先得知道hash 通过百度百科看一下 hash是一个函数 该函数中的实现就是一种算法 就是通过一系列的算法来得到一个hash值 这个时候 我们就需要
  • Java学习笔记 --- 布尔类型

    一 布尔类型 1 布尔类型也叫boolean类型 boolean类型数据只允许取值true和false 无null public class Bool public static void main String args boolean
  • 3、Java的If语句与For循环

    一 语句 条件语句 根据不同的条件 执行不同的语句 if if else if else if if else if else if else switch 循环语句 重复执行某些动作 for while do while 1 1 if语句
  • 字符“&”在XML文件中需要被转义

    今天弄Mybatis的配置文件时 因为这样一条语句
  • 使用jemeter进行压力测试关注的指标

    一 压测设置 线程数 并发数量 能跑多少量 具体说是一次存在多少用户同时访问 Rame Up Period in seconds 表示JMeter每隔多少秒发动并发 理解成准备时长 设置虚拟用户数需要多长时间全部启动 如果线程数是20 准备
  • 剑指offer第二版面试题20:表示数值的字符串(java)

    题目描述 请实现一个函数用来判断字符串是否表示数值 包括整数和小数 例如 字符串 100 5e2 123 3 1416 和 1E 16 都表示数值 但是 12e 1a3 14 1 2 3 5 和 12e 4 3 都不是 分析 1 在数值之前
  • MVC发展历程及思想

    两种web应用程序的开发模式 model 1 JSP JavaBean JSP负责 页面显示 页面跳转 调用Javabean处理数据 处理请求 JavaBean负责 数据封装保存 数据处理逻辑 适用场景 model 1 方式适合开发业务逻辑
  • JAVA获取类的类对象的三种方式

    自定义一个类 MyClass 并声明该类的对象 class MyClass MyClass mClass1 new MyClass 1 2 3 在上面说过 Class 类的构造方法是私有的 只有 java 虚拟机可以调用该方法创建该类的对象
  • java Map集合

    目录 一 介绍 二 HashMap 三 TreeMap 四 LinkedHashMap 一 介绍 Java中的Map是一种键值对的集合数据类型 用于存储无序的 不重复的键值对 它提供了快速的查找和访问功能 可以根据键来获取值 常见的Map实
  • javaSE进阶1之static用法

    JavaSE进阶 静态关键字 static static关键字的作用 成员变量分类 静态成员变量 实例成员变量 static修饰成员变量内存原理 static 修饰成员方法的基本用法 成员方法的分类 static修饰成员方法内存原理 sta
  • POI解析word\pdf中表格

  • JAVA,异常

    异常概念 通常大家认为异常就是错误 但这个错误有很多种 1 语法错误 2 JVM虚拟机错误 3 平台错误 4 程序运行错误 平台或者资源或者逻辑 数值等错误 常见的异常 1 java lang NullPointerException 空指
  • java动态加载jar包,并运行其中的类和方法

    flink 相关 https www toutiao com article 6883793897495986691 动态加载jar包 在实际开发中经常会需要用到 尤其涉及平台和业务的关系的时候 业务逻辑部分可以独立出去交给业务方管理 业务
  • springboot跳转页面

    SpringBoot里面只有src目录 在src main resources下面有两个文件夹 static 和 templates springboot默认static中放静态页面 而templates中放动态页面 themleaf和fr
  • AQS底层原理

    1 AQS能干嘛 是什么 能干嘛 加锁就会有阻塞 有阻塞就需要排队 实现排队必然需要有某种形式的队列来进行管理 是什么 废话 抽象的队列同步器 翻译一下 AQS是用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石 通过内置的
  • 多线程下载文件(支持暂停、取消、断点续传)

    多线程下载文件 支持暂停 取消 断点续传 多线程同时下载文件即 在同一时间内通过多个线程对同一个请求地址发起多个请求 将需要下载的数据分割成多个部分 同时下载 每个线程只负责下载其中的一部分 最后将每一个线程下载的部分组装起来即可 涉及的知
  • 设计模式(2)

    2 2 结构型模式 结构型模式一共有七种 其中 适配器模式和装饰模式统称为包装模式 装饰模式和代理模式的类图基本相同 但目的不同 这些有相似目的或者有相似结构的模式需要对其概念辨析清楚 才能较好地掌握 下面将对结构型模式分别进行介绍 2 2
  • java基础之HashSet详解

    HashSet详解 HashSet是基于HashMap实现的一个单列存储的集合类 将所有的数据存在HashMap的key值中 而value全部使用一个Object对象存储 继承关系 public class HashSet
  • 黑豹程序员-统一身份认证接口

    术语和定义 1 IAM Identity Access Manager 统一身份认证系统 2 IDM Identity Manager 身份管理 3 SSO Single Sign On 单点登录 4 AD Active Directory

随机推荐

  • 从零开始配置 vim(11)——插件管理

    之前我们介绍了基础配置部分和快捷键配置部分 如果你配置了这两个部分 vim已经算是比较好用了 但是作为代码编辑器来讲还是显的比较简陋 用这些配置来完成日常的编码任务会显得力不从心 vim比较强大的一点是它拥有丰富的插件系统 大量高手在上面为
  • C++ 变长参数解包

    文章目录 变长参数模板 解包的正确姿势 解包的错误姿势 小结 变长参数解包 参考 最近 看C 11相关的东西 看到模板变长参数的时候 关于变长参数的代码都看不懂了 变长参数模板 解包的正确姿势 参考 1 3 中说变长参数模板如何解包的问题
  • LLVM语言参考手册

    LLVM语言参考手册 1 摘要 Abstract 2 简介 Introduction 2 1 结构良好性 Well Formedness 3 标识符 Identifiers 4 高级结构 High Level Structure 4 1 模
  • ubuntu静态ip设置和能ping通局域网但不能ping通外网解决

    静态ip设置 1 步骤一 2 步骤二 3 步骤三 设置ip地址 cat etc network interfaces interfaces 5 file used by ifup 8 and ifdown 8 auto lo iface l
  • 智能机器人及其应用ppt课件_电缆及其沟井智能监测技术研究与应用

    作为我国城市中配电线路建设的主要方式 对电缆进行监测是保证其安全可靠运行的重要手段 作者研究了电缆及其沟井智能监测技术 设计了电缆运行状态诊断评估系统 分析了系统的架构及功能 该系统在青岛供电公司取得了良好的应用 实现了电缆及其沟井的智能化
  • Angular学习1-内置属性型指令之NgStyle、NgClass、NgModel基本使用

    Angular 属性型指令会监听并修改其它 HTML 元素和组件的行为 Attribute 和 Property 它们通常被应用在元素上 就好像它们是 HTML 属性一样 因此得名属性型指令 许多 NgModule 例如 RouterMod
  • python实现PCA降维及可视化

    实现功能 python对数据清洗以及数据编码 具体实现方式可查看前两篇文章 后的变量进行PCA降维 并进行可视化展示 实现代码 导入需要的库 import numpy as np import pandas as pd import sea
  • 初识C语言(三)

    目录 十一 数组 11 1数组的定义和声名 11 2数组的初始化 11 3数组的访问 十二 操作符 12 1算术操作符 12 2关系操作符 12 3逻辑操作符 12 4位操作符 12 5赋值操作符 十三 关键字 1 auto 2 break
  • 【学习笔记】第8章 Linux共享库的组织

    第8章 Linux共享库的组织 注 以下内容摘录自 程序员的自我修养 SO NAME libname so x y z 其中x表示主版本号 y表示次版本号 z表示发布版本号 不同的主版本号可能导致程序不兼容 相同的主版本号 不同的次版本号之
  • FABRIC架构详解

    原文地址 1 区块链解决方案的特性 1 1 分布式帐本 区块链核心概念是分布式帐本 就像下面的图1所示 同样的帐本 全量的交易数据 详见下节 在任意一台节点 不包括客户端 上都有 所以 其优点是数据很难造假 造假后也可以通过追溯记录来追究法
  • QT析构崩溃问题

    QT析构崩溃问题 问题原因 析构函数崩溃的原因可能有很多 但通常是由于在析构函数中访问了已经被删除或释放的对象指针或内存区域引起的 可能是由于以下原因导致析构函数崩溃 对象被重复删除 如果您在程序中多次删除同一个对象 可能会导致析构函数崩溃
  • 我的webpack学习笔记(一)

    前言 在上一篇文章中我介绍了学习webpack前的准备工作 下面开始webpack的学习 创建webpack demo文件夹 mkdir webpack demo cd webpack demo 初始化一份package json npm
  • 电赛专题

    有幸邀请到了在2019大学生电子设计大赛的获奖优秀队员为本公众号投稿 将分几次推文为大家介绍几只优秀队伍的作品 本次推文为大家分享西安电子科技大学微电子学院的团队的作品 团队成员为 步枫 施炜洛 魏巍 排名不分先后 指导教师 蔡觉平 康海燕
  • Free C/C++ Libraries(免费的C/C++库)

    推荐一些免费的开源C C 程序库 该内容来源于 http www programmerworld net resources c library htm 1 Boost Provides a repository for free peer
  • tar.gz文件怎么解压缩_如何解压缩tar.gz文件

    tar gz文件怎么解压缩 如果您使用开源软件 则有时可能会遇到 tar文件 开源tar存档实用程序自1979年以来一直存在 因此它在POSIX世界中确实无处不在 它的目的很简单 它将一个或多个文件并 包装 到一个自包含的文件中 称为磁带存
  • QT中connect高级链接——指针、lambda、宏、第五参数

    1 connect使用指针 cpp view plain copy connect b2 QPushButton released this MainWidget mySlot 抬起 按钮b2时 修改按钮b2的标题 2 使用lambda表达
  • 数据治理之数据质量

    一 前言 之前我们介绍了数据资产治理类工具 数据资产管理产品架构规划设计思路 本期 我们来聊聊数据质量检测和监控的核心工具 DQC和SLA 二 基本概念 DQC 即Data Quality Control 数据质量检测 数据质量控制 一般我
  • 找了这么多毕业设计题目,反而不知道选哪个了

    1 学生宿舍管理系统 2 仓库管理系统 3 超市销售管理系统 4 工资管理系统 5 供应商管理系统 6 会员卡管理系统 7 计量管理系统 8 进销存财务管理系统 9 进销存管理系统 10 人才管理系统 11 图书管理系统 12 图书销售系统
  • java代码开发完成后,代码走查规范

    代码走查注意事项 1 不变的值 尽量写个常量类 2 尽量使用if else 不要一直if去判断 3 减少循环调用方法查询数据库 4 dao层尽量不要用逻辑 尽量在service里写业务逻辑 5 金额使用Bigdecimal类型的 0 00这
  • 对象的上转型对象

    1 定义 如果B类是A类的子类或间接子类 当用B类创建对象b并将这个对象b的引用赋给A类对象a时 如 A a a new B OR A a B b new B a b 则称A类对象a是子类B对象b的上转型对象 2 性质 对象b的上转型a的实