java中对象多态时成员变量,普通成员函数及静态成员函数的调用情况
生活随笔
收集整理的這篇文章主要介紹了
java中对象多态时成员变量,普通成员函数及静态成员函数的调用情况
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*
樣例1:class Parent{int num = 3;}class Child extends Parent{int num = 4;}
*//*
樣例2:
class Parent{}class Child extends Parent{int num = 4;
}
*//*
樣例3:
class Parent{void show(){System.out.println("Parent Show!");}}class Child extends Parent{void show(){System.out.println("Child Show!");}}
*//*
樣例4:
class Parent{}class Child extends Parent{void show(){System.out.println("Child Show!");}}
*/class Parent{static void show(){System.out.println("Parent Show!");}}class Child extends Parent{static void show(){System.out.println("Child Show!");}}public class PC{public static void main(String[] args){Parent p = new Child();//樣例1://System.out.println(p.num);// 3, 輸出的是父類的num;//樣例2://System.out.println(p.num);// 錯誤: 找不到符號 num//樣例3://p.show();//Child Show! 輸出的是子類的方法!//樣例4://p.show();// 錯誤: 找不到符號 p.show();//樣例5:p.show();// Parent Show! 運行父類的靜態方法。}
}/*
總結:
對象多態時:
1.成員變量:(不涉及覆蓋)
編譯時: 參考引用變量所屬的類中是否有調用的成員變量, 有, 編譯通過,沒有,編譯失敗。
運行時: 參考引用變量所屬的類中是否有調用的成員變量, 并運行該類所屬中的成員變量。
簡單的說:編譯和運行都參考等號的左邊。
2.成員函數(非靜態):
編譯時:參考引用變量所屬的類中是否有調用的成員變量, 有, 編譯通過, 沒有,編譯失敗:
運行時:參考的是對象所屬的類中是否有調用的函數。
簡單的說:編譯看左邊, 運行看右邊。
3.靜態函數, 變量:編譯和運行都是參考左邊參數類型!其實靜態方法不存在多態, 靜態方法是屬于類的,我們說的是對象的多態!靜態方法直接用類名調用就好了,沒必要創建對象! 靜態的方法只能被靜態的方法所覆蓋!*/
轉載于:https://www.cnblogs.com/hujunzheng/p/3872619.html
總結
以上是生活随笔為你收集整理的java中对象多态时成员变量,普通成员函数及静态成员函数的调用情况的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 收楼的时候开发商腻子可以叫开发商铲吗?
- 下一篇: 随州靠谱的装修公司有哪些?