Java聽課筆記——10.23
1.類的封裝:等於是複習了上一節課的東西
修飾關鍵字有: private protected public ,預設
注意:預設的修飾符在同一包中可以訪問,不同包中不能訪問
類封裝的原則:(同C++):
變數為private型,方法(函式)和介面為public
連線上一節課的static,static修飾的方法和變數可以在沒有建立物件的情況下直接進行訪問
即:使用類名引用法進行訪問
static變數遊離在物件之外,只有一個副本,
一些工具類的定義多用static 比如math.abs();函式
注意:如果在非static方法中使用了外部定義的static變數,則錯誤是編譯失敗!
2. 繼承(也是上一節課講過的)
繼承的目的:程式碼的複用
一、方法的多型:
(1).過載: 同名不同參
(2).重寫overwrite (覆蓋):同參同返回值
父子類之間發生,子類中重寫父類中的函式可以進行覆蓋
(3).若引數相同卻返回值不同:報錯!
(一樣則覆蓋,不一樣則過載,異同參半報錯!)
二、型別的多型:
(1).isA關係(即是關係)
(2)2.hasA關係(舉例:person物件包含生日(時間)物件)
三、編譯時多型
(1).編譯時多型:
(2).執行時多型:
子類物件即是父類,
父類物件引用子類:例:Animal animal = new Bird();
比如在呼叫物件的時候,取決於animal呼叫的方法是Animal還是Bird宣告的
3.抽象類
必須用abstract修飾;
本身不能被例項化物件,只能作為其它類的超類
抽象方法的定義規範,加分號。
定義的方法分為抽象方法(被抽象類實現的)和例項方法(未被實現的)
可以沒有抽象方法,但是構造方法不能是抽象方法
抽象類繼承: 必須給出抽象方法的實現,並且必須實現所有的。
抽象類的意義:給出一種約束規範
4.介面:
new右鍵新建interface
ava interface 類中所有的成員方法都是抽象的;
介面由實現該介面的類來提供方法的具體實現。
一個Java介面是由一組常量和抽象方法定義組成。
介面的定義:
介面中的方法可以不加abstract修飾,因為接口裡沒有抽象的概念
注意:介面中不可以有構造方法!!!!!!!
補充:類的重構:refactor ->rename