這個問題聽起來愚蠢到一些,但我需要得到它在我心裏清楚。動態綁定和靜態綁定
class J_SuperClass {
void mb_method() {
System.out.println("J_SuperClass::mb_method");
}
static void mb_methodStatic() {
System.out.println("J_SuperClass::mb_methodStatic");
}
}
public class J_Test extends J_SuperClass {
void mb_method() {
System.out.println("J_Test::mb_method");
}
static void mb_methodStatic() {
System.out.println("J_Test::mb_methodStatic");
}
public static void main(String[] args) {
J_SuperClass a = new J_Test();
a.mb_method();
a.mb_methodStatic();
J_Test b = new J_Test();
b.mb_method();
b.mb_methodStatic();
}
}
輸出是:
J_Test::mb_method
J_SuperClass::mb_methodStatic
J_Test::mb_method
J_Test::mb_methodStatic
我知道動態綁定在運行時發生,靜態綁定發生在編譯時。此外,對於動態綁定,對象的實際類型決定調用哪種方法。所以我的問題是,在上面的代碼中,詞語「靜態」導致靜態結合,因此該對象的聲明的類型決定調用哪種方法?
@ user1109363回覆:您的鹽漬問題,看看[這裏](http://stackoverflow.com/questions/12724935/salt-and-passwords)和[這裏](http://stackoverflow.com/questions/420843 /如何-做密碼 - 鹽 - 幫助 - 對-A-彩虹表攻擊) – StuartLC