標籤:關鍵字 成員 方法 功能 建立 ble java基礎 存在 需要
一、final關鍵字
有的時候不想別人重寫我的方法,使用final關鍵字修飾該方法,final:最後的,最終的,可以修飾類、修飾函數、修飾變數,修飾類:該類不能被繼承;直接寫在class關鍵字前面
修飾函數:函數不能被重寫;直接寫在函數傳回值類型前面;
修飾變數:變數的值不能被修改,可以成為常量;直接寫在變數的資料類型前面;
因為被final修飾的變數的值不能改變,所以被fianl修飾的變數有叫做常量;
此時,我們給他的命名的書寫規範:全部字母都要大寫;多個單詞,可以使用底線(_)分開;
如: private static final double PI = 3.14;
變數的值不能改變,指的是直接儲存在變數中的內容不能改變;
如果被final修飾的變數是一個參考型別的資料,那麼通過這個引用改變堆空間中的資料,不會報錯;
二、抽象類別 1. 抽象類別的產生
需求:建立類描述貓和狗的行為;
貓的行為:抓老鼠;吃魚;
狗的行為:看家;吃骨頭;
分析:
因為貓和狗都是動物,所以可以讓貓和狗分別繼承動物類,然後將共同東西抽取到動物類中;
小結:當事物的功能描述不清,只能表示有這個功能時,就應該使用抽象修飾該功能,這個功能就是抽象的功能;
如果一個類中有抽象的功能,那麼這個類也是抽象的類;
2. 抽象的特點
a. 抽象類別不能執行個體化
因為抽象類別,表示一個描述不清的事物,所以不能執行個體化;
b.子類繼承抽象類別,必須實現父類的所有抽象函數,否則子類也是抽象的
抽象類別,必須由子類去繼承,繼承的子類必須實現父類中所有的抽象方法;
c. 抽象函數必須放在抽象類別中
因為類中有抽象函數,表示描述不清的功能,所以整個類所描述的事物,也是描述不清的,所以需要將類也定義為抽象的;
c. 注意事項
c.1 抽象類別一定是父類嗎?
是,因為抽象類別就是通過不同的子類向上抽取共性資訊得倒的,抽線類必須由子類去繼承和重寫抽象函數;
c.2 抽象類別中有構造方法嗎?
必須有,因為抽象類別需要由子類去繼承,子類執行個體化的時候,要調用父類的建構函式,抽象類別的建構函式作用是初始化本類中的成員變數的;
c.3 抽象類別中可以不書寫抽象方法嗎?
可以;可以只有非抽象的成員;
同樣,不能執行個體化;
c.4 抽象類別中可以定義非抽象的方法嗎?(抽象類別中可以書寫普通方法和成員變數)
抽象類別中除了抽象函數,還可以定義所有一般類中可以定義的成員;
c.5 抽象關鍵字abstract不能和哪些修飾符關鍵字共存?
因為抽象的函數只有被繼承的子類重寫了,才可以使用,所以不能和private以及final關鍵字一起使用;
static: 因為靜態函數可以直接使用類名調用,所以也不能使用static修飾抽象函數;
c.6 抽象類別什麼時候使用?
當描述的功能不確定,不知道具體怎麼實現的時候,就需要使用抽象函數,這是類也是抽象的;
不想執行個體化這個類(包括自己也不行),但是允許別人繼承,也可以使用抽象類別;
3. 抽象類別應用
需求:描述Hr和程式員:
有共同的
JAVA基礎--物件導向08