Java 無(wú)參數(shù)構(gòu)造函數(shù)的應(yīng)用
創(chuàng)建類(lèi)時(shí)指定了有參數(shù)構(gòu)造函數(shù)后,系統(tǒng)默認(rèn)不會(huì)創(chuàng)建無(wú)參數(shù)構(gòu)造函數(shù),需要自己手動(dòng)創(chuàng)建。
創(chuàng)建子類(lèi)的對(duì)象實(shí)例時(shí),默認(rèn)會(huì)先調(diào)用父類(lèi)的無(wú)參數(shù)的構(gòu)造函數(shù)(默認(rèn)構(gòu)造函數(shù))。
若父類(lèi)未定義無(wú)參數(shù)構(gòu)造函數(shù),則在編譯階段報(bào)錯(cuò)。
若子類(lèi)指定了父類(lèi)的有參構(gòu)造函數(shù),則可以通過(guò)編譯和運(yùn)行。
子類(lèi)聲明super(id, city)顯示調(diào)用父類(lèi)有參構(gòu)造函數(shù)
package cn.lw.testpkg;
/**
* @author wanglei 2018年4月18日
*/
class Predessor {
private int id;
private String city;
public Predessor(int id, String city) {
this.id = id;
this.city = city;
}
@Override
public String toString() {
return "Predessor [id=" + id + ", city=" + city + "]";
}
}
class Successor extends Predessor {
private String name;
private String sex;
public Successor(String name, String sex, int id, String city) {
super(id, city);
this.name = name;
this.sex = sex;
}
@Override
public String toString() {
return "Successor [name=" + name + ", sex=" + sex + "]";
}
}
public class CallConstructorTest {
public static void main(String[] args) {
Successor s2 = new Successor("A", "male", 1, "HZ");
System.out.println(s2);
}
}
輸出
Successor [name=A, sex=male]
父類(lèi)未定義無(wú)參數(shù)構(gòu)造函數(shù),子類(lèi)不聲明super(id, city)
public Successor(String name, String sex) {
this.name = name;
this.sex = sex;
}
編譯報(bào)錯(cuò)
Implicit super constructor Predessor() is undefined. Must explicitly invoke another constructor
父類(lèi)顯示定義無(wú)參數(shù)構(gòu)造函數(shù),方法調(diào)用的傳遞性
package cn.lw.testpkg;
/**
* @author wanglei 2018年4月18日
*/
class Predessor {
private int id;
private String city;
public Predessor() {
System.out.println("調(diào)用了 Predessor 無(wú)參的構(gòu)造函數(shù)");
}
public Predessor(int id, String city) {
this.id = id;
this.city = city;
}
@Override
public String toString() {
return "Predessor [id=" + id + ", city=" + city + "]";
}
}
class Successor extends Predessor {
private String name;
private String sex;
public Successor() {
System.out.println("調(diào)用了 Successor 無(wú)參的構(gòu)造函數(shù)");
}
public Successor(String name, String sex) {
this.name = name;
this.sex = sex;
}
@Override
public String toString() {
return "Successor [name=" + name + ", sex=" + sex + "]";
}
}
public class CallConstructorTest {
public static void main(String[] args) {
Successor s = new Successor();
System.out.println(s);
System.out.println("--------------");
Successor s2 = new Successor("A", "male");
System.out.println(s2);
}
}
輸出
調(diào)用了 Predessor 無(wú)參的構(gòu)造函數(shù)
調(diào)用了 Successor 無(wú)參的構(gòu)造函數(shù)
Successor [name=null, sex=null]
--------------
調(diào)用了 Predessor 無(wú)參的構(gòu)造函數(shù)
Successor [name=A, sex=male]
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java的無(wú)參構(gòu)造函數(shù)用法實(shí)例分析
- Java序列化中子類(lèi)、父類(lèi)構(gòu)造函數(shù)問(wèn)題實(shí)例分析
- java使用this調(diào)用構(gòu)造函數(shù)的實(shí)現(xiàn)方法示例
- java中File類(lèi)的構(gòu)造函數(shù)及其方法
- 深入理解Java中的構(gòu)造函數(shù)引用和方法引用
- Java中的Random()函數(shù)及兩種構(gòu)造方法
- Java構(gòu)造函數(shù)與普通函數(shù)用法詳解
- Java構(gòu)造函數(shù)的相互調(diào)用代碼示例
- JAVA如何定義構(gòu)造函數(shù)過(guò)程解析
相關(guān)文章
解決JSON.toJSONString首字母大小寫(xiě)的問(wèn)題
這篇文章主要介紹了解決JSON.toJSONString首字母大小寫(xiě)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
java使用TimerTask定時(shí)器獲取指定網(wǎng)絡(luò)數(shù)據(jù)
java.util.Timer定時(shí)器,實(shí)際上是個(gè)線(xiàn)程,定時(shí)調(diào)度所擁有的TimerTasks。一個(gè)TimerTask實(shí)際上就是一個(gè)擁有run方法的類(lèi),需要定時(shí)執(zhí)行的代碼放到run方法體內(nèi),TimerTask一般是以匿名類(lèi)的方式創(chuàng)建,下面的就用示例來(lái)學(xué)習(xí)他的使用方法2014-01-01
如何使用SpringMVC的消息轉(zhuǎn)換器設(shè)置日期格式
這篇文章主要介紹了如何使用SpringMVC的消息轉(zhuǎn)換器設(shè)置日期格式問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
springboot整合redis實(shí)現(xiàn)發(fā)送郵箱并驗(yàn)證
大家好,本篇文章主要講的是springboot整合redis實(shí)現(xiàn)發(fā)送郵箱并驗(yàn)證,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下2022-01-01
重試框架Guava-Retry和spring-Retry的使用示例
spring-retry 和 guava-retry 工具都是線(xiàn)程安全的重試,能夠支持并發(fā)業(yè)務(wù)場(chǎng)景的重試邏輯正確性,本文主要介紹了重試框架Guava-Retry和spring-Retry的使用示例,感興趣的可以一下2023-09-09
微信企業(yè)號(hào)驗(yàn)證/發(fā)送/接收消息
這篇文章主要介紹了微信企業(yè)號(hào)驗(yàn)證/發(fā)送/接收消息的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10
Java實(shí)現(xiàn)對(duì)中文字符串的排序功能實(shí)例代碼
這篇文章主要介紹了Java實(shí)現(xiàn)中文字符串的排序功能實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-04-04
Java技能點(diǎn)之SimpleDateFormat進(jìn)行日期格式化問(wèn)題
這篇文章主要介紹了Java技能點(diǎn)之SimpleDateFormat進(jìn)行日期格式化問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
IDEA的Project無(wú)法正常顯示的問(wèn)題解決
本文主要介紹了IDEA的Project無(wú)法正常顯示的問(wèn)題解決,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02

