Object 有一個native方法,hashCode()幾乎所有的數(shù)據(jù)類型都重寫了這個方法。有一個疑問,native方法既然非Java語言書寫(查百度是c++),那為何所有的Java數(shù)據(jù)類型都能重寫這個native方法。。。如果是跟JVM有關(guān)的話,請高手指點下,應(yīng)該學(xué)習(xí)哪塊兒內(nèi)容。
1 回答

ABOUTYOU
TA貢獻1812條經(jīng)驗 獲得超5個贊
這個和JVM實現(xiàn)關(guān)系不大,是否為native方法也沒關(guān)系。
這是java特性-多態(tài)的一種體現(xiàn),重寫之后調(diào)用的實際上是實現(xiàn)類的hashCode方法,和超類的hasCode方法沒關(guān)系了(如果實現(xiàn)類沒調(diào)用超類的hashCode方法的話)
abstract class A{
int hasCode(){
}
}
class B extend A{
int hasCode(){
//我實現(xiàn)了
}
}
A a = new B();
a.hasCode(); // 實際上此時a引用的B的實例,a.hasCode()重寫了A中的hashCode,調(diào)用的實際上是重寫后的方法。
添加回答
舉報
0/150
提交
取消