時(shí)間久了就容易記不清了,特留存?zhèn)溆貌榭?/p>
為隆陽(yáng)等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及隆陽(yáng)網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站制作、做網(wǎng)站、隆陽(yáng)網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
c++
1.構(gòu)造函數(shù)調(diào)用 常用初始化列表 或者顯示調(diào)用
1.1同一個(gè)類中構(gòu)造函數(shù)調(diào)用構(gòu)造函數(shù) 盡量不要這樣做,因?yàn)榻Y(jié)果不確定!避免麻煩
可以把共用的代碼封裝成一個(gè)私有的成員函數(shù),然后在構(gòu)造函數(shù)內(nèi)統(tǒng)一調(diào)用。
1.2子類構(gòu)造函數(shù)調(diào)用基類構(gòu)造函數(shù)
-----基類有默認(rèn)構(gòu)造函數(shù)時(shí),可以在子類不寫,則隱式調(diào)用
-----基類無(wú)/有默認(rèn)構(gòu)造函數(shù)時(shí),在子類構(gòu)造函數(shù)初始化列表處調(diào)用,則顯示調(diào)用 基類類名(參數(shù))
class Base { public: Base(int b) : m_b(b) { } private: int m_b; }; class Derived : public Base { public: //普通派生類構(gòu)造函數(shù)的寫法 Derived(int b, int d) : Base(b), m_d(d) { } private: int m_d; };
構(gòu)造原則如下:
1. 如果子類沒(méi)有定義構(gòu)造方法,則調(diào)用父類的無(wú)參數(shù)的構(gòu)造方法。
2. 如果子類定義了構(gòu)造方法,不論是無(wú)參數(shù)還是帶參數(shù),在創(chuàng)建子類的對(duì)象的時(shí)候,首先執(zhí)行父類無(wú)參數(shù)的構(gòu)造方法,然后執(zhí)行自己的構(gòu)造方法。
3. 在創(chuàng)建子類對(duì)象時(shí)候,如果子類的構(gòu)造函數(shù)沒(méi)有顯示調(diào)用父類的構(gòu)造函數(shù),則會(huì)調(diào)用父類的默認(rèn)無(wú)參構(gòu)造函數(shù)。
4. 在創(chuàng)建子類對(duì)象時(shí)候,如果子類的構(gòu)造函數(shù)沒(méi)有顯示調(diào)用父類的構(gòu)造函數(shù)且父類自己提供了無(wú)參構(gòu)造函數(shù),則會(huì)調(diào)用父類自己的無(wú)參構(gòu)造函數(shù)。
5. 在創(chuàng)建子類對(duì)象時(shí)候,如果子類的構(gòu)造函數(shù)沒(méi)有顯示調(diào)用父類的構(gòu)造函數(shù)且父類只定義了自己的有參構(gòu)造函數(shù),則會(huì)出錯(cuò)(如果父類只有有參數(shù)的構(gòu)造方法,則子類必須顯示調(diào)用此帶參構(gòu)造方法)。
6. 如果子類調(diào)用父類帶參數(shù)的構(gòu)造方法,需要用初始化父類成員對(duì)象的方式
2.子類調(diào)用基類函數(shù) 類名::函數(shù)名(參數(shù))
JAVA
1.構(gòu)造函數(shù)調(diào)用 this(參數(shù)) / super(參數(shù))
1.1同一個(gè)類中調(diào)用構(gòu)造函數(shù) [必須在構(gòu)造函數(shù)中第一行] this(參數(shù))
class Person { private String name; private int age; private boolean sex; public Person() { this("jadeshu", 22, true); // 必須在第一行 不能同時(shí)調(diào)兩個(gè)不同的構(gòu)造函數(shù) } public Person(String name,int age, boolean sex) { this.name = name; this.age = age; this.sex = sex; } }
1.2子類構(gòu)造函數(shù)調(diào)用基類構(gòu)造函數(shù) [必須在構(gòu)造函數(shù)中第一行] super(參數(shù))
class Man extends Person { public Man(String name, int age) { //System.out.println("===="); //不能再非構(gòu)造函數(shù)中使用this調(diào)用構(gòu)造函數(shù) super(name, age, true); // 必須在第一行 } }
2.子類調(diào)用基類函數(shù) super.函數(shù)名(參數(shù))
class Person { private String name; private int age; private boolean sex; public Person() { this("jadeshu", 22, true); // 必須在第一行 } public Person(String name, int age, boolean sex) { this.name = name; this.age = age; this.sex = sex; } public void person_test() { System.out.println("Person person_test() called!"); } public void sub_test() { System.out.println("Person sub_test() called!"); } } class Man extends Person { public Man(String name, int age) { //System.out.println("===="); super(name, age, true); // 必須在第一行 } public void sub_test() { System.out.println("Man sub_test() called!"); } public void sub() { person_test(); // 直接調(diào)用父類的函數(shù)[子類不存在person_test函數(shù)] super.sub_test(); // 調(diào)用父類中的函數(shù)[子類和父類存在同名函數(shù)時(shí)使用super.XXX] System.out.println("Man sub() called!"); } }
C#
1.構(gòu)造函數(shù)調(diào)用
1.1同一個(gè)類中構(gòu)造函數(shù)調(diào)用構(gòu)造函數(shù) :this(參數(shù)列表)
1.2子類構(gòu)造函數(shù)調(diào)用基類構(gòu)造函數(shù) :base(參數(shù)列表)
2.子類調(diào)用基類函數(shù) base.父類方法();
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
當(dāng)前名稱:C++/JAVA/C#子類調(diào)用父類函數(shù)情況總結(jié)
文章鏈接:http://jinyejixie.com/article48/iepihp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站內(nèi)鏈、外貿(mào)網(wǎng)站建設(shè)、面包屑導(dǎo)航、、小程序開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)