在我的理解中,即使我通過父指針調用它,下面的等號和哈希碼的實現是安全的,因爲派生類中的正確方法將調用(而不是父類)。只要父級被視爲抽象類(用於JPA - hiberante基類)。請根據下面的例子確認這個假設。繼承類中的等號和哈希碼
@Entity
@Inheritance
class A {
String type;
}
@Entity
class B extends A {
String uniqueName;
.......
@Override
public boolean equals(Object obj) {
..
}
@Override
public int hashCode() {
}
}
@Entity
class C extends A {
String uniqueName;
.......
@Override
public boolean equals(Object obj) {
..
}
@Override
public int hashCode() {
}
}
class D {
A a;
String name;
}
由於A可以接受B和C的情況下,寫入等於/散列法對d時,是它確定與上述實施(僅在乙& C,不是在A)。不會有A直接實例化(新的A)的情況。
謝謝。
哪些實現?你只是發佈了聲明,而不是方法體。 – 2010-07-28 18:24:17
使用IDE生成的代碼。 – bsr 2010-07-28 18:36:51