成員的特點:
1.成員變量
編譯時:參考引用型變量所屬的類中是否有調(diào)用的成員變量,有,則編譯通過。
運行時:參考引用型變量所屬的類中是否有改成員變量。并運行該成員變量。
簡單書說:編譯和運行都參考左邊。
2.成員函數(shù)
編譯時:參考引用型變量所屬的類中是否有調(diào)用的函數(shù),有則編譯通過。相當(dāng)于向上轉(zhuǎn)型時無法使用子類中特有的方法。
運行時:優(yōu)先子類,子類沒有找父類
簡單說:編譯看左邊,運行看右邊
3.靜態(tài)方法
因為靜態(tài)的不涉及對象,所有靜態(tài)的沒有多態(tài)性。
簡單說:編譯和運行看左邊
內(nèi)部類
定義在類中的類,也叫嵌套類。
1.內(nèi)部類可以直接訪問外部類的成員
2.外部類要訪問內(nèi)部類,必須要建立內(nèi)部類的對象。outer.inner in =new outer().new? inner();
一般用于類的設(shè)計。
3.如果內(nèi)部類是靜態(tài)的,則相當(dāng)于外部類。outer.inner in = new outer.inner();
4.如果內(nèi)部類是靜態(tài)的,成員是靜態(tài)的。直接---->>>outer.inner.function();
如果成員是靜態(tài)的,則內(nèi)部類必須是靜態(tài)的
5.num-------this.num-------outer.this.num
6.內(nèi)部類可以存放在局部位置上,即可以在方法中定義類,即局部位置類
匿名內(nèi)部類
匿名內(nèi)部類就是內(nèi)部類的簡寫格式
????? 必須有前提:內(nèi)部類必須繼承或?qū)崿F(xiàn)一個外部類或者接口
其實就是一個匿名子類對象
格式 new? 父類(){子類內(nèi)容}