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

子類繼承父類時構(gòu)造函數(shù)相關(guān)問題解析

 更新時間:2020年11月09日 15:07:30   作者:羊37  
這篇文章主要介紹了子類繼承父類時構(gòu)造函數(shù)相關(guān)問題解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

一、總結(jié)

1.子類創(chuàng)建對象時會調(diào)用父類的構(gòu)造方法

2.采用super顯示聲明了就是調(diào)用這個顯示聲明的父類構(gòu)造方法,沒有則默認(rèn)調(diào)用父類的那個空構(gòu)造方法(父類中聲明了帶參數(shù)的構(gòu)造方法,默認(rèn)的就要顯示寫出)。

摘抄網(wǎng)絡(luò):在創(chuàng)建子類對象時,會把父類里的成員變量和方法也加載進(jìn)內(nèi)存(因為要加載進(jìn)內(nèi)存,所以要看下這些數(shù)據(jù)是怎么初始化的,所以調(diào)用了父類的構(gòu)造,僅此而已,并不是去創(chuàng)建了父類對象)

二、分析

1.子類為什么可以繼承父類的屬性與方法?

  子類對象中包含一個父類對象

  在子類對象在創(chuàng)建過程中,先調(diào)用父類構(gòu)造方法(先創(chuàng)建出內(nèi)置的父類對象),然后再創(chuàng)建出自己的對象。

  所以子類構(gòu)造時,會先調(diào)用父類的構(gòu)造方法,如果你在子類構(gòu)造方法中不顯示指明調(diào)用父類的哪個構(gòu)造方法,系統(tǒng)會給你默認(rèn)加上super()。這時父類必須有一個無參的構(gòu)造方法,不然會報錯。

2.子類在構(gòu)造時,形參可以是多少個?(設(shè)父類有可訪問的成員屬性m個,子類倘若增加自己的則增加了n個)

A:子類沒有新加自己的屬性時,它會有從父類繼承過來的m個屬性。這個時候要是子類寫帶參數(shù)的構(gòu)造方法,是對繼承過來的m個參數(shù)有選擇的進(jìn)行初始化。

B:子類有自己新加的屬性時,它的屬性會有從父類繼承過來的m個+自己新加的n個,一共是m+n個,然后選擇性的寫構(gòu)造方法。

3.存在繼承關(guān)系時,如何看子類的構(gòu)造方法?

  •   反正會先調(diào)用父類的構(gòu)造方法
  •   顯示寫了:super(參數(shù)列表),先依照此對繼承的父類屬性初始化
  •   沒有寫:調(diào)用父類的無參構(gòu)造方法super()

4.構(gòu)造方法里面是如何對屬性進(jìn)行賦值的?

  形參一個兩個三個還是多少個都不重要,怎么賦值取決于你構(gòu)造方法的方法體里面進(jìn)行的操作!(未初始化的成員變量會有默認(rèn)值(局部變量需要顯示賦初值))
  eg:子類構(gòu)造方法里面?zhèn)鬟f三個參數(shù)

  1.你可以選擇這樣,將str賦值給父類屬性,num1與num2賦值給自己新加的屬性。

  //子類son的構(gòu)造方法
  Son(String str,int num,char ch){
   super(str);
   System.out.println("子類有參構(gòu)造方法");
   this.num = num;
   this.char = ch;
  }

  2.你也可以選擇將str和num賦值給父類,char賦值給自己。

  //子類son的構(gòu)造方法2
  Son(String str,int num,char ch){
   super(str,num);
   System.out.println("子類有參構(gòu)造方法");
   this.char = ch;
  }

  所以說,我們只需要記得子類構(gòu)造方法必定會調(diào)用父類的構(gòu)造方法,至于各種屬性的賦值,都是由方法內(nèi)部決定的,而不是形參位置、數(shù)量等決定屬性的初始化。

三、實例

package yang.polymorphic;

class Father{
  public String str1;
  public int num1;

  Father(){
    System.out.println("父類無參構(gòu)造方法");
  }
  Father(String str){
    System.out.println("父類有參構(gòu)造方法1");
    this.str1 = str;
  }
}

class Son extends Father{
  public String str2;
  public int num2;

  Son(){
    //你不顯示調(diào)用父類的構(gòu)造方法時,會默認(rèn)加上super()
    System.out.println("子類無參構(gòu)造方法");
  }
  Son(String str){
    System.out.println("子類有參構(gòu)造方法1");
    this.str2 = str;
  }
  Son(String str,int num){
    super(str);
    System.out.println("子類有參構(gòu)造方法2");
    this.num2 = num;
  }
}

public class Test {
  public static void main(String[] args) {
    Son son = new Son("dd",22);
    System.out.println("1."+son.str1+"--"+son.str2+"--"+son.num1+"--"+son.num2);
    System.out.println("-------------------------------");
    Son son2 = new Son("yy");
    System.out.println("2."+son2.str1+"--"+son2.str2+"--"+son2.num1+"--"+son2.num2);

  }
}

輸出結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 新手小白學(xué)JAVA 日期類Date SimpleDateFormat Calendar(入門)

    新手小白學(xué)JAVA 日期類Date SimpleDateFormat Calendar(入門)

    本文主要介紹了JAVA 日期類Date SimpleDateFormat Calendar,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • java實現(xiàn)ftp文件上傳下載功能

    java實現(xiàn)ftp文件上傳下載功能

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)ftp文件上傳下載功能的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • SpringBoot使用spring.factories加載默認(rèn)配置的實現(xiàn)代碼

    SpringBoot使用spring.factories加載默認(rèn)配置的實現(xiàn)代碼

    在日常開發(fā)過程中,發(fā)布一些產(chǎn)品或者框架時,會遇到某些功能需要一些配置才能正常運行,這時我們需要的提供默認(rèn)配置項,同時用戶也能覆蓋進(jìn)行個性化
    2024-06-06
  • SpringBoot中的自定義Starter解讀

    SpringBoot中的自定義Starter解讀

    這篇文章主要介紹了SpringBoot中的自定義Starter解讀,啟動器模塊其實是一個空的jar文件,里面沒有什么類、接口,僅僅是提供輔助性依賴管理,這些依賴可能用于自動裝配或者其他類庫,需要的朋友可以參考下
    2023-12-12
  • 淺談java對象之間相互轉(zhuǎn)化的多種方式

    淺談java對象之間相互轉(zhuǎn)化的多種方式

    這篇文章主要介紹了淺談java對象之間相互轉(zhuǎn)化的多種方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java線程生命周期及轉(zhuǎn)換過程

    Java線程生命周期及轉(zhuǎn)換過程

    這篇文章主要介紹了Java線程生命周期及轉(zhuǎn)換過程,線程的生命周期指的是線程從創(chuàng)建到銷毀的整個過程初始狀態(tài)、可運行狀態(tài)、運行狀態(tài)、休眠狀態(tài)、終止?fàn)顟B(tài),更多詳細(xì)介紹,需要的小伙伴可以參考下面文章內(nèi)容
    2022-05-05
  • SpringBoot基于Sentinel在服務(wù)上實現(xiàn)接口限流

    SpringBoot基于Sentinel在服務(wù)上實現(xiàn)接口限流

    這篇文章主要介紹了SpringBoot基于Sentinel在服務(wù)上實現(xiàn)接口限流,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • idea打開項目后無法顯示目錄結(jié)構(gòu),只能顯示.iml文件問題

    idea打開項目后無法顯示目錄結(jié)構(gòu),只能顯示.iml文件問題

    這篇文章主要介紹了idea打開項目后無法顯示目錄結(jié)構(gòu),只能顯示.iml文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java數(shù)據(jù)結(jié)構(gòu)之散列表(動力節(jié)點Java學(xué)院整理)

    Java數(shù)據(jù)結(jié)構(gòu)之散列表(動力節(jié)點Java學(xué)院整理)

    散列表(Hash table,也叫哈希表),是根據(jù)關(guān)鍵字(key value)而直接進(jìn)行訪問的數(shù)據(jù)結(jié)構(gòu)。這篇文章給大家介紹了java數(shù)據(jù)結(jié)構(gòu)之散列表,包括基本概念和散列函數(shù)相關(guān)知識,需要的的朋友參考下吧
    2017-04-04
  • 如何在JDK 9中更簡潔使用 try-with-resources 語句

    如何在JDK 9中更簡潔使用 try-with-resources 語句

    本文詳細(xì)介紹了自 JDK 7 引入的 try-with-resources 語句的原理和用法,以及介紹了 JDK 9 對 try-with-resources 的改進(jìn),使得用戶可以更加方便、簡潔的使用 try-with-resources 語句。,需要的朋友可以參考下
    2019-06-06

最新評論