Java子類實例化總是默認調用父類的無參構造操作
子類實例化時,默認調用父類的無參構造方法(不管子類的構造器有沒有參數(shù),因為子類繼承的是父類的屬性和方法,只調用父類的無參構造器就可以繼承父類的屬性和方法,因此不會調用父類的有參構造器),再調用子類的有參/無參構造器。
示例:
package classTest; class Father { public Father(){ System.out.println("父類的無參構造方法"); } public Father(int a ) { System.err.println("父類的有參構造方法"+a); } } class Son extends Father{ public Son() { System.out.println("子類中的無參構造方法"); } public Son(int a ) { System.out.println("子類中的有參構造方法"+a); } } public class TestExecute { public static void main(String[] args) { Son s = new Son(); System.out.println("---------------"); Son a = new Son(5); } }
結果:
父類的無參構造方法
子類中的無參構造方法
---------------
父類的無參構造方法
子類中的有參構造方法5
補充知識:JAVA父類和子類的構造函數(shù)之間的關系
我就廢話不多說了,大家還是直接看代碼吧~
class SuperClass { private int n; SuperClass(){ //父類的無參構造器 System.out.println("SuperClass()"); } SuperClass(int n) { //父類的帶參構造器 System.out.println("SuperClass(int n)"); this.n = n; } } class SubClass extends SuperClass{ private int n; SubClass(){ //子類的無參構造器 super(300);//調用父類的帶參構造器,super(300)相當于SuperClass(300) System.out.println("SubClass"); } public SubClass(int n){ //子類的帶參構造器 System.out.println("SubClass(int n):"+n); this.n = n; } } public class TestSuperSub{ public static void main (String args[]){ SubClass sc = new SubClass(); SubClass sc2 = new SubClass(200); } }
這個實例的輸出結果是:
SuperClass(int n) SubClass SuperClass() SubClass(int n):200
從這個實例得到的結果是(個人見解):子類在構造時,會根據(jù)主函數(shù)中是否傳入?yún)?shù)來選擇使用無參構造器 or帶參構造器,在這個實例中:
當子類調用的是無參構造器時,若父類的構造器是帶有參數(shù)的,則必須在子類的構造器中顯式地通過super關鍵字調用父類的構造器并配以適當?shù)膮?shù)列表。
當子類調用的是帶參構造器時,則在子類的構造器中用super調用父類構造器不是必須的,如果沒有使用super關鍵字,系統(tǒng)會自動調用父類的無參構造器。
以上這篇Java子類實例化總是默認調用父類的無參構造操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot解決數(shù)據(jù)庫時間和返回時間格式不一致的問題
這篇文章主要介紹了SpringBoot解決數(shù)據(jù)庫時間和返回時間格式不一致的問題,文章通過代碼示例和圖文結合的方式講解的非常詳細,對大家的學習和工作有一定的幫助,需要的朋友可以參考下2024-03-03Spring Boot+Drools規(guī)則引擎整合詳解
本篇文章主要介紹了Spring Boot+Drools規(guī)則引擎整合,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09springboot-rabbitmq-reply?消息直接回復模式詳情
這篇文章主要介紹了springboot-rabbitmq-reply消息直接回復模式詳情,文章通過圍繞主題展開詳細的內容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下2022-09-09springboot后端存儲富文本內容的思路與步驟(含圖片內容)
在所有的編輯器中,大概最受歡迎的就是富文本編輯器和MarkDown編輯器了,下面這篇文章主要給大家介紹了關于springboot后端存儲富文本內容的思路與步驟的相關資料,需要的朋友可以參考下2023-04-04詳解springboot + profile(不同環(huán)境讀取不同配置)
本篇文章主要介紹了springboot + profile(不同環(huán)境讀取不同配置),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05