国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

關于java中構造函數的一些知識詳解

2019-11-26 13:28:09
字體:
來源:轉載
供稿:網友

java的構造函數是一個非常重要的作用,首先java里的構造函數是可以重載的,而且因為也是可以繼承在父類的構造函數,所以在子類里,首先必然是調用父類的構造函數。可以看下面的兩個例子來對比:

public class Test{  public static void main(String args[])  {    B b = new B(100);  }}class A{  public A()  {    System.out.println("A without any parameter");  }  public A(int i)  {    System.out.println("A with a parameter");  }}class B extends A{  public B()  {    System.out.println("B without any parameter");  }  public B(int i)  {    System.out.println("B with a parameter");  }}

這個例子最后輸出的是

A without any parameter

B with a parameter

可以看到首先調用的是父類的構造函數,然后再是調用自己的構造函數。但是因為這里的B類中的有參數的構造函數是沒有super父類,所以導致它只會執行父類的沒有參數的構造函數。如果要讓它執行有參數的父類的構造函數,那么就要這樣寫代碼:

public class Test{  public static void main(String args[])  {    B b = new B(100);  }}class A{  public A()  {    System.out.println("A without any parameter");  }  public A(int i)  {    System.out.println("A with a parameter");  }}class B extends A{  public B()  {    System.out.println("B without any parameter");  }  public B(int i)  {    super(i);        //這里就是繼承自父類的有參數的構造函數    System.out.println("B with a parameter");  }}

所以最后輸出的是:

A with a parameter

B with a parameter

因此,派生類必須通過super來調用父類的含有參數的構造函數。以下再附一道題:

public class Test extends X{  Y y = new Y();  Test()  {    System.out.print("Z");  }  public static void main(String args[])  {    new Test();  }}class X{  Y b = new Y();  X()  {    System.out.print("X");  }}class Y{  Y()  {    System.out.print("Y");  }}

輸出的結果是什么?

首先我們來分析這道題:

因為首先看這個main函數,這個main函數只有一句代碼: new Test();因為發現這個Test類是繼承自X,所以首先要構造X,那么就進行X類的運行 Y b = new Y(),然后我們可以看到輸出的Y,然后就是執行X類的構造函數,輸出X;接著就是構造Y,然后執行Test自己的構造函數,輸出Z,所以輸出結果是YXYZ。

以上這篇關于java中構造函數的一些知識詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 舞阳县| 新平| 河津市| 西乌珠穆沁旗| 阿坝县| 南郑县| 广水市| 常宁市| 丹凤县| 阿合奇县| 昌邑市| 旺苍县| 沅陵县| 屯昌县| 荥阳市| 屯留县| 宁陕县| 尚志市| 阿勒泰市| 望江县| 名山县| 阿拉善右旗| 上高县| 中方县| 获嘉县| 沂源县| 盈江县| 灌南县| 福安市| 许昌市| 霍林郭勒市| 泸溪县| 海宁市| 五大连池市| 宜宾市| 石河子市| 绩溪县| 宜阳县| 宁德市| 朝阳市| 沽源县|