又三天打鱼两天晒网了。。继续java

本文深入解析Java的多态特性,如何使用父类引用指向子类对象,并探讨了object类中的equals()与hashcode()方法工作原理。了解如何正确进行对象比较,包括内存地址比较及自定义比较规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Java的多态引用:父类的引用变量可以指向任意的子类对象,

这个需要好好理解一下,Father ft = new Son();

这里的new Son() 构造出来的Son对象,本质上还是一个Son类型,但是可以用父类的引用变量ft去指向它,也可以将它向上转型为

Father ft = (Father) new Son();

这里的Son只是表面看起来是Father类的对象,但是它本质上还是Son对象,这个是在它new的时候就决定了的,所以也只有这种情况下的ft 对象可以强制转换为Son类型

同理,子类对象也可以传递给需要父类对象参数的函数

 

2.object类的equals()和hashcode()方法,

进行比较时,先比较hashcode是否一致,不一致,则判断为不同的对象

若一致,则需通过equals方法比较两个对象的内存地址,是否为同一对象。当然string类和其他类中可以自己重写覆盖equals和hashcode 方法,最好也应该两个都重写,根据自己都需要来进行对象相同都比较,object中都相同是指两个对象就是同一个,即内存地址都相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值