1.接口和抽象類
抽象類abstract class是要被具體的類來繼承的來使用的,它是不能被實(shí)例化的,抽象類里面的抽象方法abstract fun hello()是一定要被子類實(shí)現(xiàn)的;
抽象類是有類的特征,接口只是一些方法的定義;
共同點(diǎn):不能實(shí)例化
用法:類可以實(shí)現(xiàn)多個接口,但是之類繼承一個類;
2.繼承是集成類的構(gòu)造方法
一個類要被繼承必須是open的,一個方法要被其它類使用,也要必須是open的;abstract類和方法是生來被繼承的,所以不用open標(biāo)識;

Screen Shot 2020-04-16 at 1.37.46 PM.png

Screen Shot 2020-04-16 at 1.31.40 PM.png
3. object className {} 即就是單例

Screen Shot 2020-04-16 at 1.37.46 PM.png
4.伴生對象companion object{}和靜態(tài)成員
伴生對象即就是靜態(tài)方法:直接通過類名調(diào)用。

Screen Shot 2020-04-16 at 2.26.31 PM.png

Screen Shot 2020-04-16 at 2.52.55 PM.png

Screen Shot 2020-04-16 at 2.53.27 PM.png
5.拓展(類.要拓展的方法或者屬性)

Screen Shot 2020-04-16 at 3.50.57 PM.png

Screen Shot 2020-04-16 at 3.50.14 PM.png
6.內(nèi)部類
1>.非靜態(tài)內(nèi)部類是持有外類的狀態(tài),可以在非靜態(tài)內(nèi)部類里面訪問非靜態(tài)內(nèi)部類的屬性;
2>.靜態(tài)內(nèi)部類,就訪問不了靜態(tài)內(nèi)部類外面的屬性嘍,因?yàn)樗鼪]有持有外類的狀態(tài);
3>.kotlin中的內(nèi)部類默認(rèn)的是靜態(tài)內(nèi)部類;使用inner關(guān)鍵字可使其為非靜態(tài)內(nèi)部類。

Screen Shot 2020-04-16 at 6.16.50 PM.png