Java靜態辦法不具有多態性詳解。本站提示廣大學習愛好者:(Java靜態辦法不具有多態性詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Java靜態辦法不具有多態性詳解正文
靜態綁定機制使得基類的援用可以或許指向准確的子類對象,從而使得面向基類編程成為能夠。
但是靜態綁定在以下兩種情形會掉效。
1、基類辦法是private或final潤飾的
這個很好懂得,由於private解釋該辦法對子類是弗成見的,子類再寫一個同名的辦法其實不是對父類辦法停止復寫(Override),而是從新生成一個新的辦法,也就不存在多態的成績了。同理也能夠說明final,由於辦法異樣是弗成籠罩的。
2、辦法是static潤飾的
代碼以下所示.
class Base { public static void staticMethod() { System.out.println("Base staticMehtod"); } public void dynamicMehtod() { System.out.println("Base dynamicMehtod"); } } class Sub extends Base { public static void staticMethod() { System.out.println("Sub staticMehtod"); } public void dynamicMehtod() { System.out.println("Sub dynamicMehtod"); } } public class TJ4 { public static void main(String args[]) { Base c = new Sub(); c.staticMethod(); c.dynamicMehtod(); } }/* OutPut: Base staticMehtod Sub dynamicMehtod */
輸入成果其實不像假想的那樣,輸入 "Sub staticMehtod"。由於靜態辦法是與類而不是與某個對象相干聯,c.staticMethod();同等於Car.staticMethod(); 所以盡可能不要應用實例變量去挪用靜態辦法,防止混雜。
以上這篇Java靜態辦法不具有多態性詳解就是小編分享給年夜家的全體內容了,願望能給年夜家一個參考,也願望年夜家多多支撐。