Java之对象转型(casting)

2023-10-27

1.一个基类的引用类型可以指向其子类的对象

2.一个基类的引用指向子类的对象时不可以访问其子类对象新增加的成员(属性和方法) 比如,一只狗继承动物类,如果将狗当成动物传入,那么狗局不能访问自己独有的成员,只能当成动物来用

3.可以引用   变量  instanceof  类名   来判断该引用变量所指向的对象是否属于该类或该类的子类


4.子类对象可以当做基类对象来使用,称为向上转型(upcasting),反之,称为向下转型(downcasting0



class Animal {
	public String name;
	Animal(String name) {
		this.name = name;
	}
}
class Cat extends Animal {
	public String eyesColor;
	Cat(String n,String c) {
		super(n);
		eyesColor = c;
	}
}
class Dog extends Animal {
	public String furColor;
	Dog(String n,String c) {
		super(n);
		furColor = c;
	}
}
public class TestAnimal {
	public static void main(String[] args) {
		Animal a = new Animal("name");
		Cat c = new Cat("catname", "blue");
		Dog d = new Dog("dogname", "black");
	
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java之对象转型(casting) 的相关文章

随机推荐

  • Springboot初识--Bean的理解

    注解下的Spring Ioc Spring所提供的两个核心理念 一个是控制反转 Inversion of Control IoC 另一个是面向切面编程 Aspect Oriented Progarmming AOP IoC容器是spring
  • Mybatis中parameterType的用法

    在mybatis映射接口的配置中 有select insert update delete等元素都提到了parameterType的用法 parameterType为输入参数 在配置的时候 配置相应的输入参数类型即可 parameterTy
  • rsync安装及使用详细步骤

    目录 1 介绍rsync 2 rsync的安装以及操作方法 3 启动rsync 4 文件传输 5 效验 6 总结 rsync 是一个开源的命令行工具 用于在不同的主机之间同步文件和目录 它可以通过远程 shell 或 rsync 协议 默认
  • SQL语句学习系列(1)

    目录 查询语句 1 查询所有列的所有行 2 查询指定列的所有行 3 查询满足条件的行 4 查询满足多个条件的行 6 查询满足条件的行数 7 查询满足条件的唯一值 8 查询满足条件的分组统计 9 查询满足条件的平均值 10 查询满足条件的最大
  • C语言练习题(14) 有以下函数,该函数的功能是( )int fun(char *s) { char *t = s; while(*t++); return(t-s); }(非常详细的讲解)

    1 有以下函数 该函数的功能是 int fun char s char t s while t return t s A 比较两个字符的大小 B 计算s所指字符串占用内存字节的个数 C 计算s所指字符串的长度 D 将s所指字符串复制到字符串
  • 深入研究源码:Android10.0系统启动流程(三):Zygote

    前言 研究过程中参考了很多的文章 这篇源码分析 可能是全网最全的Zygote源码分析了 如果觉得这篇源码分析太干 也可以先看一下后续的相关总结 戳https juejin im post 6844903966665539591 全文概览 我
  • java项目的心得,java项目的代码层次的架构划分

    java项目使用的架构是ssm Spring SpringMVC MyBatis 一 后台代码一般分三层 Controller Service Dao 1 Controller层是对前端或者接口的响应一个逻辑处理的层 这个层级一般调用的是S
  • 3、MyBatisPlus的CRUD 接口

    MyBatisPlus的CRUD 接口 一 insert 1 插入操作 2 主键策略 二 update 1 根据Id更新操作 2 自动填充 3 乐观锁 三 select 1 根据id查询记录 2 通过多个id批量查询 3 简单的条件查询 4
  • Nor flash 页写地址与数据大小的限制

    厂商提供的flash手册如下 如果页写指令的地址不是256的整数倍 并且写入的数据量超过了当前地址所在页的边界 则超过的那些数据会重新写入当前页的首地址 即256的整数倍地址 所以 在进行页写的时候 要注意这个限制 跨页写数据时注意分多个页
  • JAVA验证数字的整数位长度及小数据位长度

    文章目录 一 案例说明 二 使用步骤 1 引入库 2 读入数据 一 案例说明 验证数字的整数位长度及小数据位长度 二 使用步骤 1 引入库 代码如下 示例 import java util regex Matcher import java
  • 9、无须光照的模型假阴影实现 URP

    模型阴影 我们在实际项目中 经常会有模型影子的需求 这个时候如果使用光照的话 在移动端性能消耗太大 如果使用一个假的阴影片 效果又不太好 我们希望有能够有和灯光系统一样的阴影效果 我们通过模拟灯光的方式来实现 之前我们写的shader都是对
  • USB设备开发---- usb描述符概述

    说到USB设备 不得不提到各种描述符 descriptors 一般来说 描述符有如下几种 1 设备描述符 Device Descriptors 2 配置描述符 Configuration Descriptors 2 接口描述符 Interf
  • 图和带权图(数据结构13-14章——读书笔记)

    一 图 在计算机程序设计中 图是最常用的结构之一 一般来说 用图来帮助解决的问题类型与本书中已经讨论过的问题类型有很大差别 如果处理一般的数据存储问题 可能用不到图 但对某些问题 图是必不可少的 1 1 图简介 图是一种与树有些相像的数据结
  • java中很实用的快捷键

    Windows下eclipse 1 ctrl shift o 自动引入包和删除无用包 2 ctrl shift x和ctrl shift y 英文字母大小写的转换 3 ctrl d 删除当前行 删除当前行 4 ctrl shift 自动注释
  • Django+Vue 实现登录功能(elementUI,axios,Qs)前后端分离

    技术栈 Django vue Element webpack axios Qs 介绍 利用django vue 实现了 前后端分离 目前只实现了登录功能 后期项目将继续更新 实现步骤 1创建Django项目 django admin sta
  • 2022春哈工大ICS大作业——程序人生-hello‘sP2P

    计算机系统 初发布于2022 5 15 修改于2022 5 20 大作业 题 目 程序人生 Hello s P2P 专 业 学 号 班 级 学 生 沈业力 指 导 教 师 史先俊 计算机科学与技术学院 2022年5月 摘 要 本论文目的在于
  • C++ STL : std::list

    练习下C STL中std list类的常用方法 方便以后查阅 如有不正确的地方 请读者及时指正 欢迎转载 谢谢 include
  • 面向2022届毕业生-自动驾驶/SLAM/DL/C++ 岗位收集整理

    收集整理 Created by leijobs876 gmail com 目标方向 C C 开发 Andorid 开发 深度学习部署 自动驾驶感知与定位 ROS机器人开发 文章目录 收集整理 目标方向 方向完全一致 总体结果 1 秋招进展框
  • java byte数组赋值_干货!写给小白看的入门级Java基本语法,强烈推荐

    众所周知 Java 是一门面向对象的编程语言 它最牛逼的地方就在于它是跨平台的 你可以在 Windows 操作系统上编写 Java 源代码 然后在 Linux 操作系统上执行编译后的字节码 而无需对源代码做任何的修改 今天我们就来仔细讲一讲
  • Java之对象转型(casting)

    1 一个基类的引用类型可以指向其子类的对象 2 一个基类的引用指向子类的对象时不可以访问其子类对象新增加的成员 属性和方法 比如 一只狗继承动物类 如果将狗当成动物传入 那么狗局不能访问自己独有的成员 只能当成动物来用 3 可以引用 变量