av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

構(gòu)造器的執(zhí)行順序

1,在沒有靜態(tài)塊的情況下,子類的對象創(chuàng)建時(shí),父類的無參構(gòu)造器-->子類的構(gòu)造器(產(chǎn)生對象的構(gòu)造器,如果

是無參則執(zhí)行的是無參構(gòu)造器,如果執(zhí)行的是有參則執(zhí)行的有參構(gòu)造器)

現(xiàn)在的父類中只有兩個(gè)構(gòu)造器:

 
 
 
  1. Father.java  
  2.  Father {  
  3.     public Father(){  
  4.         System.out.println("我是父類的無參構(gòu)造器");  
  5.     }  
  6.        
  7.     public Father(String username){  
  8.         System.out.println("我是父類有參構(gòu)造器,傳過來的參數(shù)是+"+username);  
  9.     }  
  10. public class SonDemo extends Father{  
  11.    
  12.     public SonDemo(){  
  13.         System.out.println("我是--子類--的無參構(gòu)造器");  
  14.     }  
  15.     public SonDemo(String username){  
  16.         System.out.println("我是子類的有參構(gòu)造器,參數(shù)是"+username);  
  17.     }  
  18.        
  19.     public void sys(){  
  20.         System.out.println("我是子類的sys方法");  
  21.     }  
  22.        
  23.     public static void main(String[] args) {  
  24.         //里面的內(nèi)容在下面有說明  
  25.     }  
  26.        
  27.        
  28.        

①,子類使用無參構(gòu)造器創(chuàng)建對象:

在SonDemo 的main方法中加入創(chuàng)建對象的代碼:

 
 
 
  1. SonDemo son = new SonDemo();  
  2.        

我是父類的無參構(gòu)造器

我是--子類--的無參構(gòu)造器

②,子類使用有參構(gòu)造器創(chuàng)建對象:

SonDemo的main方法中加入

 
 
 
  1. SonDemo son = new SonDemo("than you ma"); 

那么控制臺打印的結(jié)果是:

我是父類的無參構(gòu)造器

我是子類的有參構(gòu)造器,參數(shù)是than you ma

也就是說在子類調(diào)用無參構(gòu)造器創(chuàng)建對象的時(shí)候,在執(zhí)行它自己的有參構(gòu)造器之前首先執(zhí)行父類的無參構(gòu)造器。

③,在子類中創(chuàng)建父類的對象,使用無參,

 
 
 
  1. SonDemo son = new SonDemo("than you ma");  
  2. Father ff = new Father(); 

SonDemo的main方法中加入

我是父類的無參構(gòu)造器

我是--子類--的無參構(gòu)造器

我是父類的無參構(gòu)造器

調(diào)用了父類的無參構(gòu)造器,有參的創(chuàng)建對象調(diào)用的是有參構(gòu)造器。

總結(jié):在創(chuàng)建子類對象的時(shí)候,首先會調(diào)用父類的構(gòu)造器,讓后在調(diào)用子類相應(yīng)的構(gòu)造器創(chuàng)建對象,在子類創(chuàng)建父類對象時(shí),就是直接調(diào)用父類自己相應(yīng)的構(gòu)造器。

2.如果在子類和父類中存在靜態(tài)塊;執(zhí)行順序有會是怎么樣的了?

答,靜態(tài)塊會在構(gòu)造器之前運(yùn)行。不管是子類還是父類。創(chuàng)建一個(gè)對象的時(shí)候,會首先加載它的靜態(tài)塊。

 
 
 
  1. Father.java  
  2. public class Father {  
  3.    
  4.     //靜態(tài)塊  
  5.     static{  
  6.         System.out.println("father  static ");  
  7.     }  
  8.        
  9.     public Father(){  
  10.         System.out.println("我是父類的無參構(gòu)造器");  
  11.     }  
  12.        
  13.     public Father(String username){  
  14.         System.out.println("我是父類有參構(gòu)造器,傳過來的參數(shù)是+"+username);  
  15.     }  
  16. }  
  17.    
  18. SonDemo.java  
  19. public class SonDemo extends Father{  
  20.     //靜態(tài)塊  
  21.     static{  
  22.         System.out.println("sonDemo static ");  
  23.     }  
  24.        
  25.     public SonDemo(){  
  26.         System.out.println("我是--子類--的無參構(gòu)造器");  
  27.     }  
  28.     public SonDemo(String username){  
  29.         System.out.println("我是子類的有參構(gòu)造器,參數(shù)是"+username);  
  30.     }  
  31.        
  32.     public void sys(){  
  33.         System.out.println("我是子類的sys方法");  
  34.     }  
  35.        
  36.     public static void main(String[] args) {  
  37.         SonDemo son = new SonDemo();  
  38.     }  

①程序的結(jié)果:

father static 

sonDemo static 

我是父類的無參構(gòu)造器 

我是--子類--的無參構(gòu)造器 

因?yàn)樵趧?chuàng)建子類對象之前:會創(chuàng)建父類的一個(gè)對象,而靜態(tài)塊會在main之前被加載,所以兩個(gè)類的靜態(tài)塊首先執(zhí)行。

然后執(zhí)行構(gòu)造器。

②,如果在子類中的main中只創(chuàng)建父類的對象結(jié)果是怎么樣的呢?

打印結(jié)果:

father static 

sonDemo static 

我是父類的無參構(gòu)造器

為什么子類的靜態(tài)塊會被加載了?是因?yàn)槲覀兪窃赟onDemo中測試,如果在其他類中測試就不會打印。

總結(jié):我們說了這么多就是重要的一點(diǎn)。靜態(tài)塊會在構(gòu)造器器之前執(zhí)行。


文章題目:構(gòu)造器的執(zhí)行順序
網(wǎng)站URL:http://uogjgqi.cn/article/djijdhd.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們在微信上24小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流