子類可以通過繼承獲取到父類中非私有化方法,但是父類的方法,不一定滿足子類的情況
不可能通過重新定義類似的方法名,完成子類特定的符合要求的方法
重寫之後,在沒有增加新的方法名的情況下,重寫方法體內容,讓方法滿足子類,降低了開發壓力,提高了效率。
@override
要求重寫方法的和父類中的方法,宣告完全一致,返回值型別,方法名和形式引數列表
子類繼承父類可以直接使用父類的方法,但是在這種情況下我麼你可以發現父類的方法是一定不能在子類中使用的
但是又沒有乙個強制要求
需求:
強制要求子類重寫父類的方法,從語法角度約束
abstract修飾的方法 要求子類強制重寫
1. abstract修飾的方法沒有方法體
2. abstract修飾的方法必須定義在abstract修飾的類內或者inte***ce介面內
3. 乙個普通類【非abstract】修飾的類,繼承了乙個abstract類,那麼必須實現在abstract類內所有abstract,強制要求
4. 如果乙個abstract a類繼承另乙個abstract b類,a類可以選擇實現b類中abstract方法
5. abstract修飾的類內允許普通方法
6. abstract修飾的類不能建立自己的類物件
final修飾的成員變數
final修飾的成員變數定義時必須初始化,並且賦值之後無法修改,一般用於類內帶有名字的常量使用
final修飾成員方法
final修飾的成員變數不能被子類重寫,為最終方法,可以用於一些安全性方法的定義
final修飾的區域性變數
final修飾的區域性變數一旦被賦值,不能修改
final修飾的類
final修飾的類沒有子類,不能被繼承
abstract修飾的類不能被final修飾
1. 靜態成員變數是使用static修飾的成員變數,定義在記憶體的【資料區】
2. 靜態成員變數不推薦使用類物件呼叫,會提示警告
the static field singledog.info should be accessed in a static way
使用static修飾的singledog類neural的info變數,應該通過靜態方式訪問
3. 靜態成員變數使用類名呼叫是沒有任何的問題
4. 在**中沒有建立物件時,可以通過類名呼叫靜態成員變數,和【物件無關】
5. **中物件已經被jvm的gc銷毀時,依然可以通過類名呼叫靜態成員變數,和【物件無關】
6. 不管哪一種方式呼叫靜態成員變數,修改對應的靜態成員變數資料,所有對應的靜態成員變數資料,所有使用到當前靜態成員變數的位置,都會受到影響
public
static 返回值型別 方法名(形式引數列表)
1. 靜態成員方法推薦使用靜態方法呼叫,通過類名呼叫
不推薦使用類物件呼叫,因為【木得物件】
2. 靜態成員方法中不能使用費靜態成員 ==> (非靜態成員方法和非靜態成員變數)
因為【木得物件】
3. 靜態成員方法中不能使用this關鍵字
because木得物件
4. 靜態成員方法中可以使用類內的其他靜態成員【難兄難弟】
5. 靜態陳冠方法中,可以通過new構造方法建立物件
1. 靜態成員方法載入時間問題
靜態成員方法是隨著.class位元組碼檔案的載入而直接定義在記憶體的【方法區】,而且此時的靜態成員方法已經可以直接執行。
通過類名直接呼叫,而此時沒有物件存在
2. 為什麼靜態成員方法不能使用費靜態成員
沒有物件!!!!!
3. 為什麼靜態成員方法不能使用this關鍵字
沒有物件!!!!!
4. 靜態成員方法可以使用其他靜態成員
生命週期一致,呼叫方法一致
物件導向 part2 屬性的特性
建立自定義物件最簡單的方式就是建立乙個object例項。然後新增方法和例項 var person new object person.name hi person.sayname function 為了實現js引擎。es定義了只有內部才用的特性 不能直接訪問 描述了屬性 es有兩種屬性 資料屬性和訪...
物件導向三大特徵
1.繼承 什麼是繼承 繼承是一種建立新類的方式,在python中,新建的類可以繼承乙個或多個父類,父類又可稱為基類或超類,新建的類稱為派生類或子類 python中類的繼承分為 單繼承和多繼承 class parentclass1 定義父類 pass class parentclass2 定義父類 p...
物件導向三大特徵
是指將物件的狀態資訊隱藏在物件內部,不允許外部程式直接訪問而是通過類提供的方法實現類內資訊的操作和訪問。可以通過j a中的訪問控制符來實現。實現復用。j a中,通過extends實現繼承 每個類只有乙個直接父類 j a.lang.object是所有類的直接 間接父類 子類獲得父類的全部屬性和方法 除...