ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

类型比较运算符 instanceof 与 多态 类型转换的一些现象

2020-12-23 14:59:57  阅读:173  来源: 互联网

标签:类型转换 instanceof Pet 多态 Dog 运算符 pet


类型比较运算符 instanceof多态 类型转换的一些现象

多态

关于多态的描述可以看之前的文章
https://blog.csdn.net/norang/article/details/110943231

从中而知

多态的出现有三个前提,1.具有继承和实现之一 2.要有方法的重写或实现 3.用 超类或接口来声明子类的对象

类型比较运算符 instanceof

在这里插入图片描述
总的来说,instanceof运算符的作用就是,

boolean a=obj instanceof Class

假如左边的 obj对象能够转换成右边的Class 类型的数据,则返回true, 否则 返回 false。

public class Dog extends Pet implements Animal{
    public static void main(String[] args) {

        Pet pet=new Pet();
        System.out.println(pet);
        System.out.println(pet instanceof Dog);   //返回 false




      ((Dog)pet).play();   //编译期时,不会报错,但在 运行期,会报错。

    }

}

在这里插入图片描述

也就是 Pet父类型对象,无法转换成Dog对象。虽然Pet与Dog有继承关系。

从另一个方面,作为子类Dog拥有的数据范围,本身就比父类的Pet大,这种转换的不可行,也有了一定的依据。

有什么不懂的,建议直接看官方文档
https://docs.oracle.com/javase/specs/index.html

标签:类型转换,instanceof,Pet,多态,Dog,运算符,pet
来源: https://blog.csdn.net/norang/article/details/111409136

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有