native method :hashCode()

Object 有一个native方法,hashCode()
几乎所有的数据类型都重写了这个方法。
有一个疑问,native方法既然非Java语言书写(查百度是c++),那为何所有的Java数据类型都能重写这个native方法。。。如果是跟JVM有关的话,请高手指点下,应该学习哪块儿内容。

大话西游666
浏览 639回答 1
1回答

ABOUTYOU

这个和JVM实现关系不大,是否为native方法也没关系。这是java特性-多态的一种体现,重写之后调用的实际上是实现类的hashCode方法,和超类的hasCode方法没关系了(如果实现类没调用超类的hashCode方法的话) abstract class A{ int hasCode(){ } } class B extend A{ int hasCode(){ //我实现了 } } A a = new B(); a.hasCode(); // 实际上此时a引用的B的实例,a.hasCode()重写了A中的hashCode,调用的实际上是重写后的方法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java