標籤:
① 如何繼承一個類?
extends關鍵字,子類在前父類在後
修飾符 SubClass extends SuperClass { //類定義部分 }
② 使用繼承有什麼好處?
建立類之間的聯絡,增加了代碼的複用性和可維護性
③ 如何通過super調用父類的屬性,方法和構造方法?
super代表對當前對象的直接父類對象的預設引用,super必須出現在子類的方法和構造方法中
super.屬性名稱
super.方法名()
super() 構造方法
④ 抽象類別和抽象方法的特點是什嗎?二者是什麼關係?
特點:
1、抽象類別和抽象方法都通過abstract關鍵字修飾
abstract class test { abstract void method(); }
2、抽象類別不能被執行個體化。抽象類別中可以沒有、有一個或多個抽象方法,甚至全部方法都可以是抽象方法
3、抽象方法只有方法聲明,沒有方法實現。有抽象方法的類必須申明為抽象類別。子類必須重寫所有的抽象方法才能執行個體化,否則子類還是一個抽象類別
關係:抽象方法必須是抽象類別,抽象類別不一定有抽象方法
⑤ 子類不能繼承父類的哪些財產?
1、無法繼承Private修飾的屬性和方法
2、無法繼承父類的構造方法
註:1、可以繼承public和protected修飾的屬性和方法,無論子類和父類是否在同一個包裡
2、可以繼承預設許可權修飾符修飾的屬性和方法,但子類和父類必須在同一個包裡
存取修飾詞 |
本類 |
同包 |
子類 |
其他 |
private |
ok |
|
|
|
預設(friendly) |
ok |
ok |
|
|
protected |
ok |
ok |
ok |
|
public |
ok |
ok |
ok |
ok |
⑥ 方法重寫必須滿足的要求是什嗎?
1、重寫方法和被重寫方法必須具有相同的方法名
2、重寫方法和被重寫方法必須具有相同的參數列表
3、重寫方法的傳回值類型必須和被重寫方法的傳回值類型相同或是其子類
4、重寫方法不能縮小被重寫方法的存取權限
⑦ abstract關鍵字可以修飾什嗎?不能修飾什嗎?
可以修飾: 類(抽象類別)、方法(抽象方法)
不能修飾: 屬性、構造方法
⑧ 它和哪三個關鍵字不能同時修飾一個方法或者類?
private:子類無法繼承到Private方法
final:抽象方法是讓子類重寫,而final修飾的方法不能被重寫
static:static可通過類名直接存取,但無法訪問一個沒有實現的方法
⑨ final關鍵字可以修飾什嗎?不能修飾什嗎?
可以修飾:類(不能被繼承)、方法(不能被重寫)、屬性(常量)
不能修飾:構造方法
⑩ 在繼承條件下構造方法的調用規則是什嗎?
1、如果子類的構造方法中沒有通過Super顯式調用父類的有參構造方法,也沒有通過this顯式調用自身的其他構造方法,則系統會預設
調用父類的無參構造方法
2、如果子類的構造方法中通過Super顯式調用父類的有參構造方法,則將執行父類相應的構造方法,而不執行父類無參構造方法
3、如果子類的構造方法中通過This顯式調用自生的其它構造方法,則在相應構造方法中應用以上兩條規則
4、如果存在多級繼承關係,則在建立一個子類對象時,以上規則會多次向更高一級父類應用,一直執行到頂級父類Object類的無參構造方法為止
註:1、在構造方法中如果有this語句或super語句,只能是第一條語句
2、在一個構造方法中不允許同時出現this和super語句調用構造方法
3、在類方法中不允許出現this或super關鍵字
4、在執行個體方法中,this和super語句不要求是第一條語句,可以共存
◆ Object類的相關知識點?
Object類是所有Java類的祖先。在定義一個類時,如果沒有使用Extends關鍵字,那麼這個類直接繼承Object類,Object存在於lang包中
java.lang.Object常見方法:equals(Object obj) 、 getClass() 、 toString() 、 hashCode() 、wait() 、 wait(long timeout)、wait(long timeout,int nanos)
存取修飾詞
Java之繼承