博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
instanceof,继承关系
阅读量:3941 次
发布时间:2019-05-24

本文共 769 字,大约阅读时间需要 2 分钟。

在这里插入图片描述

在这里插入图片描述
通过某个类new出的对象可以用其有继承关系的类来承接,通过承接变量 instanceof 某个类来判断是否两者能够进行强制类型转换。实际上是判断new出的对象的类的类型与instanceof后的类名是否有继承关系,而不是承接new出对象的引用(对象名)与instanceof后的类名是否有继承关系。
在这里插入图片描述

instanceof用于判断两个具有继承关系的父子类之间是否有关系,如果有关系则会返回true,如果没有关系则会返回false,且instanceof两边比较的一个是对象名一个是类名。比较的两边所代表的类不能处于同一级需要是一条线上具有继承关系的两个类(一个是声明对象名的类,一个是比较的类)

在这里插入图片描述

强制类型装换:之前是内存容量的类型装换,低转高,而instanceof则是对引用类型的强制装换,是父类与子类之间的类型装换。

instanceof是一个二元运算符,A instanceof B其中A是某个对象名,B为某一个类名,用于判断B类与A引用对象名是否有关系,如果声明A对象的类与B(大写)类之间有继承关系,可以是父类的父类,则会返回true,如果两者没有继承关系则会返回false。
仔细看下图关于instanceof的文字介绍:
在这里插入图片描述

注意:高转低要强制转换,低转高可以直接装换,父类中没有go方法,go方法存在于子类中,于是用父类类型的变量名来调用子类中的方法是会报错的,因此需要进行强制类型转换,将父类型的对象转换为子类型,即低转高需要进行强制类型转换。如下图所示:

在这里插入图片描述

也可将强制转换类型的语句合并起来为一句话,如下图所示:
在这里插入图片描述
子类转换为父类,可能丢失一些方法,将子类转换为父类之后,子列中的某些方法可能无法通过转换后的引用名来调用。
在这里插入图片描述
总结:
子转父自动向上转换会丢失某些子类中的方法,需要向下再强制转换为子类才能调用子类中丢失的某些方法。
在这里插入图片描述

转载地址:http://pwnwi.baihongyu.com/

你可能感兴趣的文章
3.8 - Using the Print Function
查看>>
3.9.1 - Lists in Python
查看>>
3.9.2 - Lists - Adding and Removing Objects
查看>>
3.9.3 - Sorting Lists
查看>>
3.10 - Maya Commands: ls
查看>>
3.11 - Dictionaries in Python
查看>>
3.12 - Tuples in Python
查看>>
4.4 - For Loops
查看>>
4.2.2 - Logical and/or Operators
查看>>
Lesson 4 Part 2 Softmax Regression
查看>>
文章中运用到的数学公式
查看>>
Projective Dynamics: Fusing Constraint Projections for Fast Simulation
查看>>
从2D恢复出3D的数据
查看>>
glm 中 数据类型 与 原始数据(c++ 数组)之间的转换
查看>>
Derivatives of scalars, vector functions and matrices
查看>>
the jacobian matrix and the gradient matrix
查看>>
VS2010 将背景设为保护色
查看>>
ubutun里面用命令行安装软件
查看>>
ubuntu 常用命令
查看>>
SQLite Tutorial 4 : How to export SQLite file into CSV or Excel file
查看>>