首先哪個類型的引用,它點的只能是他里面出現過的方法名字,子類新加的方法名,父類引用是不能點出這個方法的。
其次若子類重寫了某個方法,父類點這個方法時父類的方法會被覆蓋,調出的是子類重寫的方法!重寫是虛擬機運行期執行,
根據對象的不同而不是引用類型的不同,去調用不同的版本。重載是編譯期執行,虛擬機會檢查語法問題,生成.class文件(字節碼文件)
代碼
public class Excies1 { public static void main(String [] args){ father father=new son(); father.staticMethod(); father.method(); son son=new son(); son.staticMethod(); son.method(); } } class father{ public static void staticMethod(){ System.out.println("父類的靜態方法"); } public void method(){ System.out.println("父類的普通方法"); } } class son extends father{ public static void staticMethod(){ System.out.println("子類的靜態方法"); } public void method(){ System.out.println("子類的普通方法"); } }
顯示結果:
父類的靜態方法
子類的普通方法
子類的靜態方法
子類的普通方法