欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++/JAVA/C#子類調(diào)用父類函數(shù)情況總結(jié)

 更新時(shí)間:2019年03月06日 10:04:32   作者:jadeshu  
今天小編就為大家分享一篇關(guān)于C++/JAVA/C#子類調(diào)用父類函數(shù)情況總結(jié),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

時(shí)間久了就容易記不清了,特留存?zhèn)溆貌榭?/p>

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)用

-----基類無/有默認(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. 如果子類沒有定義構(gòu)造方法,則調(diào)用父類的無參數(shù)的構(gòu)造方法。

2. 如果子類定義了構(gòu)造方法,不論是無參數(shù)還是帶參數(shù),在創(chuàng)建子類的對象的時(shí)候,首先執(zhí)行父類無參數(shù)的構(gòu)造方法,然后執(zhí)行自己的構(gòu)造方法。

3. 在創(chuàng)建子類對象時(shí)候,如果子類的構(gòu)造函數(shù)沒有顯示調(diào)用父類的構(gòu)造函數(shù),則會調(diào)用父類的默認(rèn)無參構(gòu)造函數(shù)。

4. 在創(chuàng)建子類對象時(shí)候,如果子類的構(gòu)造函數(shù)沒有顯示調(diào)用父類的構(gòu)造函數(shù)且父類自己提供了無參構(gòu)造函數(shù),則會調(diào)用父類自己的無參構(gòu)造函數(shù)。

5. 在創(chuàng)建子類對象時(shí)候,如果子類的構(gòu)造函數(shù)沒有顯示調(diào)用父類的構(gòu)造函數(shù)且父類只定義了自己的有參構(gòu)造函數(shù),則會出錯(cuò)(如果父類只有有參數(shù)的構(gòu)造方法,則子類必須顯示調(diào)用此帶參構(gòu)造方法)。

6. 如果子類調(diào)用父類帶參數(shù)的構(gòu)造方法,需要用初始化父類成員對象的方式

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.父類方法();

  • ①.通過子類無參構(gòu)造函數(shù)創(chuàng)建子類實(shí)例,會默認(rèn)調(diào)用父類的無參構(gòu)造函數(shù)
  • ②.通過子類有參構(gòu)造函數(shù)創(chuàng)建子類實(shí)例,也會默認(rèn)調(diào)用父類的無參構(gòu)造函數(shù)
  • ③.在子類構(gòu)造函數(shù)中通過base關(guān)鍵字指明父類構(gòu)造函數(shù),當(dāng)通過子類構(gòu)造函數(shù)創(chuàng)建實(shí)例,會調(diào)用指明的、父類的構(gòu)造函數(shù)

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • C++實(shí)現(xiàn)團(tuán)購訂單管理系統(tǒng)

    C++實(shí)現(xiàn)團(tuán)購訂單管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了如何利用C++實(shí)現(xiàn)團(tuán)購訂單管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-12-12
  • C++ 輸入scanf()和輸出printf()的操作

    C++ 輸入scanf()和輸出printf()的操作

    這篇文章主要介紹了C++ 輸入scanf()和輸出printf()的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 探索Visual C++下創(chuàng)建WPF項(xiàng)目的方法示例

    探索Visual C++下創(chuàng)建WPF項(xiàng)目的方法示例

    這篇文章主要介紹了探索Visual C++下創(chuàng)建WPF項(xiàng)目的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • C++實(shí)現(xiàn)LeetCode(148.鏈表排序)

    C++實(shí)現(xiàn)LeetCode(148.鏈表排序)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(148.鏈表排序),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言實(shí)現(xiàn)快速排序

    C語言實(shí)現(xiàn)快速排序

    快速排序不一定是穩(wěn)定排序,這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)快速排序算法,具有一定的參考價(jià)值,感興趣的同學(xué)可以借鑒閱讀
    2023-03-03
  • C++實(shí)現(xiàn)簡易計(jì)算器功能

    C++實(shí)現(xiàn)簡易計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡易計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • QT實(shí)現(xiàn)按鈕開關(guān)Form窗體的效果的示例代碼

    QT實(shí)現(xiàn)按鈕開關(guān)Form窗體的效果的示例代碼

    本文主要介紹了QT實(shí)現(xiàn)按鈕開關(guān)Form窗體的效果的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 利用Matlab制作抖音同款含褶皺面料圖

    利用Matlab制作抖音同款含褶皺面料圖

    這篇文章主要介紹了如何利用Matlab制作抖音的同款含褶皺面料圖,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下
    2022-03-03
  • C++之const限定符詳解

    C++之const限定符詳解

    這篇文章主要為大家介紹了C++之const限定符,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 深入理解:Java是類型安全的語言,而C++是非類型安全的語言

    深入理解:Java是類型安全的語言,而C++是非類型安全的語言

    本篇文章是對Java是類型安全的語言,而C++是非類型安全的語言進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評論