3
回答
一个类的父类有一个equals方法,当这个类执行equals方法是,会执行Object的还是父类的??为什么???
【腾讯云】学生服务器套餐10元/月 >>>   

一个类的父类有一个equals方法,当这个类执行equals方法是,会执行Object的还是父类的??为什么???

举报
大溪
发帖于9个月前 3回/150阅

你如果new的是子类则会执行父类的,跟继承顺序有关

--- 共有 2 条评论 ---
李大钊_ 回复 @大溪 : 哪个最靠近子类用哪个,当然这还和你new出来的对象有关系,建议你去看看java的继承顺序 9个月前 回复
大溪那父类和Object谁先被继承了? 9个月前 回复

理论上来说,只要你不重载,就会调用父类的方法,子类->父类->Object,若果你在父类中重载了Object的equals方法,就会调用父类中的方法,否则,调用Object的方法,至于理由,重载的作用

--- 共有 2 条评论 ---
猫先生_是重写吧, 8个月前 回复
大溪在编译源代码时,当遇到没有父类的类时,编译器会将其指定一个默认的父类(一般为Object),而虚拟机在处理到这个类时,由于这个类已经有一个默认的父类了,因此,VM仍然会按着常规的方法来处理每一个类。对于这种情况,从编译后的二进制角度来看,所有的类都会有一个父类。 2、编译器仍然按着实际代码进行编译,并不会做额外的处理。如果一个类没有显式地继承于其他的类,编译后的代码仍然没有父类。然后由虚拟机运行 9个月前 回复
顶部