java super实例_java Super 用法详解及实例代码
java Super 用法詳解及實例代碼
發布于 2021-1-8|
復制鏈接
摘記: java? Super 用法詳解?1)有人寫了個很好的初始化屬性的構造函數,而你僅僅想要在其中添加另一些自己新建屬性的初始化,這樣在一個構造函數中調用另外一個構造函數,可以避免重復的代碼量,減少工作量;2)在一個構造函數中調用另外一個構造函數的時候應該用的是同一塊內存空間,在默認的構造函數中 ..
java? Super 用法詳解?1)有人寫了個很好的初始化屬性的構造函數,而你僅僅想要在其中添加另一些自己新建屬性的初始化,這樣在一個構造函數中調用另外一個構造函數,可以避免重復的代碼量,減少工作量;2)在一個構造函數中調用另外一個構造函數的時候應該用的是同一塊內存空間,在默認的構造函數中先初始化變量,調用另一個的時候覆寫已經初始化的變量的值;3)整個調用的過程和遞歸調用函數有點類似,不斷充氣球,直到整個氣球膨脹起來,不斷的深層遞進,遇到停止標記,逐層的跳出來。???? 寫了段代碼,解釋我上面的敘述:
```java
class JavanTiger {
int age; // 年齡
int hight; // 身體高度
public JavanTiger() {
print();
this.age=2; //這里初始化 age 的值 ,但遞歸返回的時候,這個值會被覆寫
}
public JavanTiger(int age) {
this(); // 調用自己的第一個構造函數,下面的兩個語句數不執行的
this.age = age;
print();
}
public JavanTiger(int age, int hight) {
this(age); // 調用自己第二個構造函數 ,下面的兩個語句數不執行的
this.hight = hight;
print();
}
public void print() { //打印函數
System.out.println("I'am a " + age + "歲 " + hight + "尺高 tiger!");
}
public static void main(String[] args) {
new JavanTiger(3,3);
}
}
//output
//I'am a 0歲 0尺高 tiger!
//I'am a 3歲 0尺高 tiger!
//I'am a 3歲 3尺高 tiger!
```
個人理解就是這樣了,可能里面還有問題,比如構造函數遞歸調用和程序函數遞歸調用的機制是否似乎相同的?構造函數同對象一起產生,也就是同時會分配內存空間出來,那門這樣的遞歸調用會不會打亂分配內存的順序?希望看到的大牛們拍板,給個最好的解釋。???? 今天要總結的是 super 這個關鍵字的使用,super 在構造函數中出現的時候一般是當前這個類繼承了其他的類,super 的出現就是為了調用父類的構造函數,貼段代碼先
```java
class Tiger {
int age; // 年齡
int hight; // 身體高度
public Tiger() {
print();
}
public void print() {
System.out.println("I'am a " + age + "歲 " + hight + "尺高 tiger!");
}
}
public class JavanTiger extends Tiger {
public JavanTiger() {
super(); // 調用父類無參數的構造函數
}
public static void main(String[] args) {
new JavanTiger();
}
}
```
其實在類JavanTiger 中的構造函數中的 super()可以不寫,JAVA會默認調用父類的無參數的構造函數,但如果父類沒有定義無參數的構造函數,沒有語法錯誤,程序會自動退出,沒有任何打印語句,這時候你需要手動調用其他父類的構造函數,貼段代碼:
```java
class Tiger {
int age; // 年齡
int hight; // 身體高度
public Tiger(int age) {
this.age = age;
print();
}
public void print() {
System.out.println("I'am a " + age + "歲 " + hight + "尺高 tiger!");
}
}
public class JavanTiger extends Tiger {
public JavanTiger() {
super(1); // 調用父類有參數的構造函數
}
public static void main(String[] args) {
new JavanTiger();
}
}
```
總結
以上是生活随笔為你收集整理的java super实例_java Super 用法详解及实例代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 压缩多个文件_java实现一次
- 下一篇: 数组的升序 java_java – 以升