关于java中equals方法的概述

在Java中对于equals方法来说,一般人都会这样说,==比较的是内存地址,equals是值 其实这样说是不准确的。关系操作符比较的是什么,在《Thinking in java》一书中是这样说的:关系操作符生成的是一个boolean结果,它们计算的是操作数的值之间的关系。看似简单,实则需要用心体会。

示例1代码所示 输出结果全是true。

示例2,创建B类,重写无参构造方法为其赋值,然后比较得知其结果为false,。说明原equals方法比较的还是内存地址

我们要达到我们自己预期的功能 则必须重写equals方法,equlas属于object类,所以任何类都可以重写,如下:equals比较的则是值

无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!很多干货和技术资料分享!有导师分享知识点,也可以直接问,每天学习的都不一样,推荐一个学JAVA的技术分享裙【 一三三,九三零,六九三】,裙内有开发工具,视频,系列资料等我们利用多态的特性再次重写equals方法 新建C类继承B类 ,运行代码可知,输出结果还是true。这是比较两个不同类实例对象的值

注意的是对象向上转型后是不能直接访问子类成员的,必须强转成子类才可以访问,这也体现出java语言的严谨性。

你可能感兴趣的:(关于java中equals方法的概述)