榮耀宣佈與理想汽車合作,車主使用其手機即可實現無感解鎖
instanceof關鍵字
instanceof關鍵字的使用
a instanceofA:判斷物件a是否是類A的例項。如果是,返回true;如果不是,返回false.
使用情境:為了避免在向下轉型時出現ClassCastException的異常,我們在向下轉型之前,進行instanceof的判斷,一旦返回true,就進行向下轉型。如果返回false,不進行向下轉型。
如果a instanceofA返回true,則 a instanceof B也返回true.
其中,類B是類A的父類。
super關鍵字
super的使用:呼叫屬性和方法
1. 我們可以在子類的方法或構造器中。通過使用"super .屬性"或"super.方法"的方式,顯式的呼叫父類中宣告的屬性或方法。但是,通常情況下,我們習慣省略"super. "
2. 特殊情況:當子類和父類中定義了同名的屬性時,我們要想在子類中呼叫父類中宣告的屬性,則必須顯式的使用"super.屬性"的方式,表明呼叫的是父類中宣告的屬性。
3. 特殊情況:當子類重寫了父類中的方法以後,我們想在子類的方法中呼叫父類中被重寫的方法時則必須顯式的使用"super.方法"的方式,表明呼叫的是父類中被重寫的方法。
super呼叫構造器
1. 我們可以在子類的構造器中顯式的使用"super(形參列表)"的方式,呼叫父類中宣告的指定的構造器
2. "super(形參列表)"的使用,必須宣告在子類構造器的首行!
3. 我們在類的構造器中,針對於"this(形參列表)"或"super(形參列表)"只能二選一,不能同時出現
4. 在構造器的首行,沒有顯式的宣告"this(形參列表)"或"super(形參列表)",則預設呼叫的是父類中空參的構造器super()
5. 在類的多個構造器中,至少有一個類的構造器中使用了"super(形參列表)",呼叫父類中的構造器
this關鍵字的使用:
1.this可以用來修飾、呼叫: 屬性、方法、構造器
2.this修飾屬性和方法:
this理解為:當前物件或當前正在建立的物件
2.1在類的方法中,我們可以使用"this.屬性"或"this.方法"的方式,呼叫當前物件屬性或方法。但是,通常情況下,我們都選擇省略"this."。特殊情況下,如果方法的形參和類的屬性同名時,我們必須顯式的使用"this.變數"的方式,表明此變數是屬性,而非形參。
2.2在類的構造器中,我們可以使用"this.屬性"或"this.方法"的方式,呼叫當前正在建立的物件屬性或方法。但是,通常情況下,我們都選擇省略"this."。特殊情況下,如果構造器的形參和類的屬性同名時,我們必須顯的使用"this.變數"的方式,表明此變數是屬性,而非形參
3. this呼叫構造器
① 我們在類的構造器中,可以顯式的使用"this(形參列表)"方式,呼叫本類中指定的其他構造器
② 構造器中不能通過"this(形參列表)"方式呼叫自己
③ 如果一個類中有n個構造器,則最多有n - 1構造器中使用了"this(形參列表)"
④ 規定:"this(形參列表)"必須宣告在當前構造器的首行
⑤ 構造器內部,最多隻能宣告一個"this(形參列表)",用來呼叫其他的構造器