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

后厂鼓励师 发布于 2017/09/01 17:05
阅读 159
收藏 0

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

加载中
0
开源中国首席大督查
开源中国首席大督查

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

开源中国首席大督查
开源中国首席大督查
回复 @大溪 : 哪个最靠近子类用哪个,当然这还和你new出来的对象有关系,建议你去看看java的继承顺序
后厂鼓励师
后厂鼓励师
那父类和Object谁先被继承了?
0
DeMoNHaDeS
DeMoNHaDeS

取决于new的是哪个类的对象

后厂鼓励师
后厂鼓励师
。。。
0
CodeZero
CodeZero

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

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