91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用java子父類的構造方法

發布時間:2020-06-21 22:52:39 來源:億速云 閱讀:163 作者:鴿子 欄目:編程語言

首先,構造方法本身會有一個隱式的無參構造(默認):

①不寫構造方法,類中的第一行代碼事實上有一個默認的無參構造(系統會隱式為你寫好)

public class Student {
        private String name;
//        public Student() {}      隱式地“寫”在這里,你看不見
//  Strudent類中雖然沒有寫構造方法,但相當于有上面的無參構造
//   只不過是隱式的,你看不見
}

②只寫帶參構造方法,相當于只有該帶參構造方法(隱式的無參構造會被屏蔽無視掉,視為無效)

public class Student {
        private String name;
        public Student(String name) {
            this.name=name;
        }
//  此時原來Strudent類中的隱式的無參構造方法被屏蔽了,無效了
//  類中只有帶參構造
}

③若想同時擁有無參和帶參構造,必須顯式地寫出無參和帶參構造方法

public class Student {
        private String name;
        public Student() {}
// 顯式地將無參構造寫出來        
        public Student(String name) {
            this.name=name;
        }
//  若想Strudent類中擁有無參構造方法,必須顯式地寫出來
}

進一步結合繼承,就需要考慮到子父類:

④在子類的構造方法(無論是無參和有參)中,方法中的第一行代碼事實上都隱式地包含了父類的無參構造方法

即: super()

public class Stu extends Student {
    private String name;
    public Stu() {
    // super();
    // 在子類的無參構造中,super()是隱式的“寫”在這里的
    }
    
    public Stu(String name) {
    // super();
    this.name=name;
    // 在子類的帶參構造,上面的super()同樣也是隱式的“寫”在這里的
    }
}

這就是為什么,調用子類的構造方法時,都會先調用父類的無參構造方法了,因為默認的super()存在。

⑤同理,類似與上面的②,此時若寫一個有參構造,super(xx)會把隱式的super()屏蔽掉

public class Stu extends Student {
    private String name;
    
    public Stu(String name) {
    // super();  原來隱式寫在這里的super()被屏蔽了,無效了
    super(name);
    
    // 在子類的帶參構造, 由于的super(name)的存在,super()無效了
    //此時子類的帶參構造中,只有super(name)
    }
}

這就是為什么當父類沒有無參構造(即只有帶參構造——對應情況②)時,子類的構造方法編譯無法通過。這是因為子類的構造函數(帶參或無參)將調用父類的無參構造函數。 由于編譯器試圖向子類中的2個構造函數中插入super() ,但父類的默認構造函數未定義,因此編譯器會報告錯誤消息。

要解決這個問題,只需要

1)添加一個無參構造函數給父類——顯式地在父類中添加無參構造

2)刪除父類中自定義的有參構造函數——等價于恢復了默認的無參構造

3)將 Super(XXX) 添加到子類構造函數——通過⑤的原來來屏蔽默認的super()

以上就是JAVA繼承中子父類的構造方法的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安徽省| 仁化县| 昭通市| 饶河县| 广州市| 毕节市| 淮滨县| 通化市| 五河县| 桐梓县| 莒南县| 江城| 那曲县| 永顺县| 肇源县| 福泉市| 县级市| 涞源县| 沂水县| 德庆县| 巴楚县| 曲周县| 茂名市| 佛冈县| 炎陵县| 麦盖提县| 武清区| 浮山县| 娱乐| 金秀| 甘孜| 司法| 思南县| 修武县| 洛宁县| 肥城市| 泽州县| 临沧市| 东阿县| 疏勒县| 桃源县|