詳述父類構造方法對子類影響

2021-10-03 16:44:47 字數 579 閱讀 5790

首先說明,當乙個類中沒有定義構造方法,則預設有乙個隱式的無參構造方法,其結構如下

public 類名() {

super();

super(); 用於呼叫父類構造方法,它必須位於構造方法方法體的第一行有效**位置

this(); 用於呼叫本類構造方法,它也必須位於構造方法方法體的第一行有效**位置

當定義了乙個有參構造方法,便沒有了預設無參構造方法,若不再定義無參構造方法,那麼此類也就沒有無參構造方法了。

基於上述條件,我們需要注意:

1.構造方法中不能同時用super與this,因為它們都需要位於第一行。

2.當父類中有無參構造方法(無論顯式或隱式),如果子類構造方法沒有呼叫父類(用super)也沒有呼叫子類(用this)構造方法,那麼會預設有super();來呼叫父類的無參構造方法。

3.當父類中沒有無參構造方法(無論顯式或隱式),則子類每乙個構造方法必須要指定呼叫某個子類或父類的構造方法。因為如果不指定呼叫,缺省會有super來呼叫並不存在的父類無參構造方法,故錯誤。

2、3兩點便是父類有無無參構造方法對子類的影響。

詳述父類構造方法對子類構造方法影響

1 乙個類中如果沒有定義構造方法,預設有乙個無參構造方法,其結構如下 public 類名 2 this 引數列表 呼叫本類構造方法,但必須放在有效 行的第一行 所以乙個構造方法中如果已經呼叫了本類構造方法,則該構造方法不能直接呼叫父類構造方法。3 如果子類構造方法沒有呼叫本類構造方法,也沒有指定呼叫...

詳述父類構造方法對子類構造方法的影響

1 乙個類中如果沒有定義構造方法,則預設有乙個無參構造方法,其結構如下 public class test2 this 引數列表 呼叫本類構造方法,但必須放在有效 行的第一行 所以乙個構造方法中如果已經呼叫了本類構造方法,則該構造方法不能直接呼叫父類構造方法,但可以間接呼叫父類構造方法。3 如果父類...

詳述父類構造方法對子類構造方法的影響

1.首先如果乙個類中沒有定義構造方法,則預設有乙個無參的構造方法,其結構為 public 類名 而且this為呼叫本類中的方法,也必須放在有效 行第一行,所以乙個構造方法中如果已經呼叫了本類的構造方法,那麼該構造方法不能夠直接呼叫父類的構造方法。因為都需放在有效 行第一行會衝突 2.而對於子類構造方...