Java中的override問題

2021-08-31 05:00:49 字數 396 閱讀 1532

有這樣乙個例子:

public class privateoverride 

public static main(string args)

}class derived extends privateoverride

}

輸出結果為private f()

解答:如果基類中的f方法不是private,那麼 po.f();應該呼叫的是子類的f方法;

但是如果基類的f方法為private,那麼該方法對於子類來說是不可見的,所以子類的f方法並不是重寫了基類的f方法,而是另乙個f方法,只不過和基類的 f名字相同,因為他不知道基類有f方法,所以基類也不知道子類有f方法,所以在 po.f();時,就會認為子類沒有f方法,所以就呼叫的基類的f方法。

Java中 Override的作用

override有注釋文件的作用,可有可無有點像雞肋 但它對於程式設計粗心的人可是個很人性化的功能 如果想重寫父類的方法,比如tostring 方法的話,在被過載的方法前面加上 override 這樣編譯的時候系統可以幫你檢查方法的正確性 如下 override public string tost...

Java中 Override的作用

但它對於程式設計粗心的人可是個很人性化的功能 如果想重寫父類的方法,比如tostring 方法的話,在被過載的方法前面加上 override 這樣編譯的時候系統可以幫你檢查方法的正確性 如下 override public string tostring 這是正確的 如果將tostring寫成tos...

Java中 Override的作用

override有注釋文件的作用,可有可無有點像雞肋 但它對於程式設計粗心的人可是個很人性化的功能 如果想重寫父類的方法,比如tostring 方法的話,在被過載的方法前面加上 override 這樣編譯的時候系統可以幫你檢查方法的正確性 如下 override public string tost...