java对象转型实例分析
作者:shichen2014 发布时间:2021-12-19 14:14:15
标签:java,对象,转型
本文实例讲述了java对象转型的概念,分享给大家供大家参考。具体方法如下:
对象转型(casting)注意事项如下:
1、一个基类的引用类型变量可以“指向”其子类的对象。
2、一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)。
3、可以使用 引用变量 instanceof 类名 来判断该引用型变量所“指向”的对象是否属于该类或该类的子类。
4、子类的对象可以当做基类的对象来使用称作向上转型(upcasting),反之成为向下转型(downcasting)。
具体实现代码如下:
public class TestCasting{
public static void main(String args[]){
Animal animal = new Animal("name");
Cat cat = new Cat("catName","blueColor");
Dog dog = new Dog("dogName","yellowColor");
System.out.println(animal instanceof Animal);
System.out.println(cat instanceof Animal);
System.out.println(dog instanceof Animal);
//System.out.println(animal instanceof cat); //error
animal = new Dog("dogAnimal","dogColor");
System.out.println(animal.name);
//System.out.println(animal.forColor); //error
System.out.println(animal instanceof Animal);
System.out.println(animal instanceof Dog);
Dog d1 = (Dog)animal;
System.out.println(d1.forColor);
}
}
class Animal{
public String name;
public Animal(String name){
this.name = name;
}
}
class Cat extends Animal{
public String eyeColor;
public Cat(String name, String eyeColor){
super(name);
this.eyeColor = eyeColor;
}
}
class Dog extends Animal{
public String forColor;
public Dog(String name, String forColor){
super(name);
this.forColor = forColor;
}
}
运行结果如下图所示:
希望本文所述对大家的Java程序设计有所帮助


猜你喜欢
- 一、设置Jackson序列化时只包含不为空的字段new ObjectMapper().setSerializationInclusion(I
- 介绍:上篇给大家介绍了ssm多模块项目的搭建,在搭建过程中spring整合springmvc和mybatis时会有很多的东西需要我们进行配置
- 先看Demo运行效果SharedPreferences详解SharedPreferences是Android平台上一个轻量级的存储类,用来保
- 0.解释器(Interpreter)模式定义 :给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。
- 前言 之前在做一个Viewpager上面加载多个Fragment时总会实例化已经创建好的Fragmnet对象类似 viewPag
- 目录特性引入依赖使用特性Kotlin + Flow 实现的 Android 应用初始化任务启动库。支持模块化,按模块加载任务可指定工作进程名
- Android Service是分为两种:本地服务(Local Service): 同一个apk内被调用远程服务(Remote Servic
- 我们知道,Java和MySQL中的数据类型是不同的,Java中除了基本数据类型,还有对象。有时候使用MySQL存储数据,或者从MySQL中读
- 本文实例讲述了Android实现手机振动设置的方法。分享给大家供大家参考。具体如下:main.xml布局文件:<?xml versio
- 使用对象访问类中的成员:对象名.成员变量;对象名.成员方法();成员变量的默认值:具体实例代码:public class StudentTe
- 不啰嗦,上菜 QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.se
- 前言本文主要给大家介绍的是关于Java通过Class类获取Class对象的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的
- MyBatis @MapKey的妙用背景在实际开发中,有一些场景需要我们返回主键或者唯一键为Key、Entity为Value的Map集合,如
- 目录前言hibernate-validator基本使用引入依赖编写需要验证对象验证对象属性是否符合要求验证规则空/非空验证bool时间数学字
- APT(Annotation Processing Tool 的简称),可以在代码编译期解析注解,并且生成新的 Java 文件,减少手动的代
- Maven多模块编译慢最近在部署项目时发现,Maven编译打包相当耗时,比之前项目用Gradle慢了很多倍,特别是对于WEB工程,打war包
- 1、引用*.wsdl文件WebService服务端会提供wsdl文件,客户端通过该文件生成.cs文件以及生成.dll.注意:若服务端只提供的
- Android异常详情介绍这种异常我遇到以下两种情况: 1. java.lang.IllegalStateException: No wra
- 本文运用图片给大家介绍了C#如何检查foreach判读其是否为null,我们下面话不多说,直接来看内容吧。1、foreach遍历列表或数组时
- 本文实例为大家分享了Unity Shader序列帧动画效果的具体代码,供大家参考,具体内容如下 实现原理主要的思想是设置显示UV