Java中instanceof关键字实例讲解

 更新时间:2022年01月24日 16:30:29   作者:道_行  
大家好,本篇文章主要讲的是Java中instanceof关键字实例讲解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下

1.向上转型 向下转型

在这里插入图片描述

2.强制类型转换的应用

应用多态性时由于引用为父类类型,导致编译时只能调用父类中声明的属性和方法。子类特有的属性和方法不能调用。因此可将父类引用强制转换为子类引用,则可调用子类特有方法。

class Animal
{
	public void shout()
	{
		System.out.println("Animal is shouting ");
	}
}
class Dog extends Animal
{
	public void shout()
	{
		System.out.println("汪 汪 汪");
	}
	public void skill()
	{
		System.out.println("Dog can guard home");
	}
}
class Cat extends Animal
{
	public void shout()
	{
		System.out.println("喵 喵 喵");
	}
}
public static void main(String [] args)
	{
		Animal animalD =new Dog();
		// animalD.skill() 报错,因为Animal类无skill方法
		Dog dog=(Dog)animalD;
		dog.skill(); //输出 Dog can guard home
	}

3.instanceof 关键字使用

a instanceof A : 判断对象a是否是类A的实例。如果是,返回true;否则返回false。

public static void main(String [] args)
	{
		Animal animalD =new Dog();
		if(animalD instanceof Dog)
		{
			System.out.println("true");//输出true
		}
	}

4.测试举例

编译通过,运行不通过

Animal animal=new Dog();
Cat cat=(Cat)animal
// 因为Cat和Dog无子父类关系

Animal animal=new Animal();
Dog dog=(Dog)animal;
//animal必须指向Dog类或Dog类子类

编译不通过

Dog dog=new Cat();
//直接不符合多态性定义

编译通过,运行通过

Object object=new Dog();
Animal animal=(Animal)object 

5.强制类型转换成功总结

子类赋值给直接父类引用(多态),然后直接父类引用再强制转换成子类子类赋值给间接父类引用(多态),然后间接父类引用可以强制转换成子类或者子类的父类

在这里插入图片描述

到此这篇关于Java中instanceof关键字实例讲解的文章就介绍到这了,更多相关Java instanceof关键字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot快速集成jxls-poi(自定义模板,支持本地文件导出,在线文件导出)

    SpringBoot快速集成jxls-poi(自定义模板,支持本地文件导出,在线文件导出)

    这篇文章主要介绍了SpringBoot快速集成jxls-poi(自定义模板,支持本地文件导出,在线文件导出),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java中Map与JSON数据之间的互相转化

    Java中Map与JSON数据之间的互相转化

    我们在开发中难免和JSON打交道,这不小编最近遇到了,需要把一些信息转成JSON字符串,下面这篇文章主要给大家介绍了关于Java中Map与JSON数据之间的互相转化,需要的朋友可以参考下
    2023-04-04
  • 基于Java的界面开发详细步骤(用户注册登录)

    基于Java的界面开发详细步骤(用户注册登录)

    通过一段时间Java Web的学习,写一个简单的注册登陆界面来做个总结,这篇文章主要给大家介绍了基于Java的界面开发(用户注册登录)的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • Java中Equals使用方法汇总

    Java中Equals使用方法汇总

    这篇文章主要采用问答的方式集中讲解了Java中Equals的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Spring框架核心概念小结

    Spring框架核心概念小结

    Spring是企业级Java的开源开发框架。Spring框架的核心功能可用于开发任何java应用程序,本文重点给大家介绍Spring框架核心概念总览,感兴趣的朋友跟随小编一起看看吧
    2022-02-02
  • 深入Ajax代理的Java Servlet的实现详解

    深入Ajax代理的Java Servlet的实现详解

    本篇文章是对Ajax代理的Java Servlet的实现方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 使用mybatis的@Interceptor实现拦截sql的方法详解

    使用mybatis的@Interceptor实现拦截sql的方法详解

    拦截器是一种基于 AOP(面向切面编程)的技术,它可以在目标对象的方法执行前后插入自定义的逻辑,本文给大家介绍了使用mybatis的@Interceptor实现拦截sql的方法,需要的朋友可以参考下
    2024-03-03
  • Java中使用Socket发送Java对象实例

    Java中使用Socket发送Java对象实例

    这篇文章主要介绍了Java中使用Socket发送Java对象实例,本文使用对象流直接发送对象,本文同时给出代码实例,需要的朋友可以参考下
    2015-05-05
  • intelliJ idea 2023 配置Tomcat 8图文教程

    intelliJ idea 2023 配置Tomcat 8图文教程

    这篇文章主要介绍了intelliJ idea 2023 配置Tomcat 8教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • SparkSQL使用IDEA快速入门DataFrame与DataSet的完美教程

    SparkSQL使用IDEA快速入门DataFrame与DataSet的完美教程

    本文给大家介绍使用idea开发Spark SQL 的详细过程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-08-08

最新评论