首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

重写==似乎在继承的类中不起作用

重写(Override)是指在子类中重新定义父类中已有的方法。当子类继承了父类的方法后,如果子类需要对该方法进行特定的实现,就可以使用重写来覆盖父类的方法。

在继承的类中,重写操作符“==”可能不起作用的原因有以下几种可能性:

  1. 类没有正确重写equals方法:在Java中,对象的相等性比较通常使用equals方法。如果在继承的类中没有正确重写equals方法,那么默认会使用父类的equals方法进行比较,这可能导致“==”操作符不起作用。正确重写equals方法需要考虑对象的属性是否相等,而不仅仅是比较对象的引用。
  2. 类中使用了不可变对象:不可变对象是指创建后其状态不可更改的对象。如果在继承的类中使用了不可变对象,那么“==”操作符通常会起作用,因为不可变对象的比较只需要比较对象的引用即可。
  3. 类中使用了自定义的相等性比较方法:有些类可能会定义自己的相等性比较方法,例如重写了hashCode方法或实现了Comparable接口的compareTo方法。在这种情况下,可能需要使用自定义的方法来比较对象的相等性,而不是使用“==”操作符。

总结起来,重写操作符“==”在继承的类中不起作用可能是由于没有正确重写equals方法、使用了不可变对象或使用了自定义的相等性比较方法等原因。在实际开发中,需要根据具体情况来确定如何比较对象的相等性,以确保代码的正确性。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):提供弹性计算能力,满足各类业务需求。详情请参考:https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库 MySQL 版(TencentDB for MySQL):提供高性能、可扩展的关系型数据库服务。详情请参考:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):提供安全、高可靠、低成本的云端存储服务。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云人工智能(AI):提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等。详情请参考:https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):提供全面的物联网解决方案,帮助连接和管理物联网设备。详情请参考:https://cloud.tencent.com/product/iot
  • 腾讯云移动开发(Mobile):提供移动应用开发和运营的一站式解决方案,包括移动应用开发平台、移动推送等。详情请参考:https://cloud.tencent.com/product/mobile
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Spring事务“套路”面试

    与这个面试者聊了一会儿,咦,发现他水平还可以,我内心有点儿喜出望外,终于遇到一个“合格”的“陪聊者”了,我要用Spring事务“好好套路”他一下。 我:你在开发中,一般都把事务加到哪一层? 他:都加到Service层。 我:现在基本都是基于注解的配置了,那和事务相关的注解是哪个? 他:我不太会读那个单词,就是以@T开头的那个。 我:我明白你的意思,就是@Transactional。 他:是的。 我:与自己写代码来开启和提交事务相比,(先给他来个小的套路),这种通过注解来使用事务的方式叫什么? 他:(犹豫了两、三秒),不知道。 我:如果把写代码那种叫编程式事务,那与之相对的应该是什么式事务? 他:哦,声明式事务。 我:(先铺垫),不加注解,没有事务,加上注解,就有事务,可见事务和注解有莫大的关系。(开始套路),那加上注解后,到底发生了什么变化呢,就有了事务? 他:(犹豫了几秒钟),不知道。 我:(哈哈,意料之中),那我换一问法,Spring声明式事务的底层是怎么实现的? 他:是通过代理实现的。 我:(铺垫),代理这个词不仅计算机里有,现实生活中也经常见到代理,比如招华北地区总代理等等。(套路),那你能不能在生活中举一个代理的例子? 他:(想了一会儿),我没有想到什么好例子。 我:(开始聊会天),我看你老家离这还挺远的,你一般都什么时候回去啊? 他:一般都国庆节或春节会回去。其它时间假期短就不回去了。 我:(引子),国庆节和春节,人都很多啊,票不好买吧? 他:是啊,都在网上抢高铁票,不停地刷。 我:(引子),现在有了高铁,出行确实方便了很多。那你知道以前没有高铁、没有12306的时候,人们都是怎么买票的吗? 他:我虽然没有经历过,但是我知道。那时候春运,都在火车站售票大厅买票,人们排很长的队,有时需要等半天,还不一定有票。 我:(切入正题),除了火车站售票大厅外,你有没有见过在城市里分布的一些火车票代售点? 他:现在偶尔还能见到几个,但都已经关门了。 我:是啊,现在都网上买票了,代售点算是被历史抛弃了。(开始套路),那你觉得代售点算不算火车站售票大厅的代理呢? 他:火车站售票大厅可以买票,代售点也可以买票,应该算是代理吧。 我:从广义讲算是代理。但有两点需要注意: 一是,代售点卖的也是售票大厅的票,它自己是没有票的,它只是行使售票大厅的权利。 二是,它可以有属于自己的行为特征,比如不需要排队啊,每张硬座票收5元手续费啊等等。 我们平时听到的中间商/代理商,其实都差不多是一回事儿。 他:经你这么一说,我明白了。 我:那我们再说回到Spring中的代理,在Spring中生成代理的方式有几种? 他:两种,JDK动态代理和CGLIB。 我:那它们分别用于什么情况下? 他:JDK动态代理只能用于带接口的,CGLIB则带不带接口都行。 我:(铺垫),假如有个接口,它包含两个方法a和b,然后有一个类实现了该接口。在该实现类里在a上标上事务注解、b上不标,此时事务是怎样的? 他:a标注解了,肯定有事务,b没有注解,所以没有事务。 我:嗯,是这样的。(开始套路),现在来做个简单的修改,在方法b里调用方法a,其它保持不变,此时再调用方法b,会有事务吗? 他:应该有吧,虽然b没有注解,但a有啊。 我:(我需要带带他),假设现在你和我都不知道有没有事务,那我们来分析分析,看能不能找出答案。你有分析思路吗? 他:没有。 我:行吧,那我们开始。这是一个带接口的,那就假定使用JDK动态代理吧。从宏观上看,就是Spring使用JDK动态代理为这个类生成了一个代理,并为标有注解的方法添加了和事务相关的代码,所以就具有了事务。那你知道这个代理大概会是什么样子的吗? 他:这个不知道。 我:通过代售点的例子我们应该知道,所有的代理都具有以下特点: 代理是一个空壳,它背后才是真正的老板。 代理可以行使老板的权力,所以它看起来“很像”老板,除非仔细查看,否则不易区分。 代理自己可以按需加进去一些行为特征,除非仔细查看,否则老板都不一定知道这些。 那我们回到程序世界,使用接口和类再套一下上面的特点: 代理类是一个空壳(或外观),它背后才是真正的类,通常称为目标类。由此得出代理类要包含目标类。 对目标类和代理类的使用方式是一样的,甚至你都不知道它是代理类。由此得出代理类和目标类的类型要兼容,对外接口一致。所以目标类实现的接口,代理类也要实现。 代理类在把执行流程代理给目标类的过程中,可以添加一些行为代码,如开启事务、提交事务等。 他:经你这么一分析啊,我知道该怎么写代码了,应该是这样的,请仔细看下代码,虽然很简单:

    02
    领券