亚洲av小电影在线免费,国产亚洲精品久午夜波多野结衣久久,亚洲日韩精品视频一区二区,国产全黄A一级视频

將想法與焦點和您一起共享

java學習-構造函數發布者:本站     時間:2020-05-06 15:05:11

一直學習java,都沒有把構造函數弄清楚,通過昨天的學習,現在有了一點點理解,不知道還有什么不知道的,望大家指導指導。

當父類沒有任何構造函數,子類定義了一個不帶參數的構造函數,這時候在測試類里面創建一個子類的對象時,程序運行時,首先調用系統默認的父類的構造函數,然后再調用子類的構造函數。例子:

public class SuperClass {
 private String name;
 private String birthdate;

public void show() {
  System.out.println("this is a public function" + name + birthdate);

 }

}

public class SubClass extends SuperClass {
 String address;
 
 public SubClass() {
  System.out.println("SubClass:this is a no parameter constructor");
 }

 public void personinformation(String _name, String _birth, String _address) {
  System.out.println("output information" + _name + _birth + _address);

 }

}

public class Test {
 
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  SubClass absence = new SubClass();

 }
}

運行結果:SubClass:this is a no parameter constructor

當父類里面定義了幾個構造函數,其中至少有一個不帶參數,子類定義了一個不帶參數的構造函數,運行的時候,調用不帶參數的構造函數,然后再運行子類的構造函數。

public class SuperClass {
 private String name;
 private String birthdate;

public SuperClass() {
  name = "chen";
  birthdate = "feb";

  System.out.println("SuperClass:this is a no parameter constructor");
 }

 public SuperClass(String chen, String febu) {
  name = chen;
  birthdate = febu;
  System.out.println("this is parameter constructor:" + name + birthdate);
 }

public void show() {
  System.out.println("this is a public function" + name + birthdate);

 }

}

public class SubClass extends SuperClass {
 String address;
 
 public SubClass() {
  System.out.println("SubClass:this is a no parameter constructor");
 }

 public void personinformation(String _name, String _birth, String _address) {
  System.out.println("output information" + _name + _birth + _address);

 }

}

public class Test {
 
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  SubClass absence = new SubClass();

 }
}

 運行結果:SuperClass:this is a no parameter constructor
SubClass:this is a no parameter constructor

當父類中只定義帶參數的構造函數,父類定義的構造函數和上面的一樣,這樣程序運行就會出現錯誤,編譯不能通過,會出現錯誤提示。因為在創建子類對象時,由于沒有不帶參數的構造函數,它不知道要調用父類的那個構造函數。所以要在定義子類構造的第一行加上調用父類的構造函數:super("hhh");根據括號里面的參數類型、個數來確定調用父類里面的那個構造函數。例子:

public class SuperClass {
 private String name;
 private String birthdate;

public SuperClass(String chen, String febu) {
  name = chen;
  birthdate = febu;
  System.out.println("this is parameter constructor:" + name + birthdate);
 }

 public SuperClass(String chen) {
  name = chen;
  System.out.println("this is parameter constructor1:" + name );
 }
 

public void show() {
  System.out.println("this is a public function" + name + birthdate);

 }

}

public class SubClass extends SuperClass {
 String address;
 
 public SubClass() {

super("hhh");                                      //非常重要!根據他來調用父類的構造函數
  System.out.println("SubClass:this is a no parameter constructor");
 }

 public void personinformation(String _name, String _birth, String _address) {
  System.out.println("output information" + _name + _birth + _address);

 }

}

public class Test {
 
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  SubClass absence = new SubClass();

 }
}

運行結果:this is parameter constructor1:hhh



選擇我們,優質服務,不容錯過
1. 優秀的網絡資源,強大的網站優化技術,穩定的網站和速度保證
2. 15年上海網站建設經驗,優秀的技術和設計水平,更放心
3. 全程省心服務,不必擔心自己不懂網絡,更省心。
------------------------------------------------------------
24小時聯系電話:021-58370032
主站蜘蛛池模板: 临夏县| 宁河县| 当雄县| 焦作市| 红河县| 林西县| 临泉县| 宜昌市| 德兴市| 盈江县| 雅安市| 漾濞| 高州市| 栖霞市| 翁牛特旗| 建湖县| 布尔津县| 广南县| 乌鲁木齐县| 措美县| 泰来县| 桑日县| 泸溪县| 长武县| 大石桥市| 嘉黎县| 承德县| 拉萨市| 咸阳市| 泸定县| 万全县| 札达县| 贡嘎县| 宁城县| 富阳市| 花莲县| 望谟县| 齐齐哈尔市| 龙游县| 开远市| 红原县|