Java子類對象的實例化過程分析
本文實例講述了Java子類對象的實例化過程。分享給大家供大家參考,具體如下:
一 點睛
子類對象在實例化時,子類對象會默認先調用父類中的無參構造函數,然后再調用子類構造構造方法。
二 實戰(zhàn)
1 代碼
class Person { String name ; int age ; public Person() // 父類的構造方法 { System.out.println("***** 父類構造:1. publicPerson()") ; } } class Student extends Person { String school ; public Student() // 子類的構造方法 { //super() ; //實際上程序在這里隱含了這樣一條語句 System.out.println("##### 子類構造:2. public Student()"); } } public class SubInstantProcess { public static void main(String[] args) { Student s = new Student() ; } }
2 運行
***** 父類構造:1. publicPerson()
##### 子類構造:2. public Student()
3 說明
運行結果可以證明:子類對象在實例化時,會默認先去調用父類中的無參構造方法,之后再調用子類本身的相應構造方法。
實際上,在子類構造方法的首行相對于默認隱含了一個“super()”語句。上面的Student類如果改寫成下面形式,也是合法的。運行結果也是一樣的。
class Student extends Person { String school ; public Student() // 子類的構造方法 { super() ; //隱含了這樣一條語句,它負責調用父類無參構造方法 System.out.println("##### 子類構造:2. public Student()"); } }
更多java相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數據結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
相關文章
Mybatis?MappedStatement類核心原理詳解
這篇文章主要介紹了Mybatis?MappedStatement類,mybatis的mapper文件最終會被解析器,解析成MappedStatement,其中insert|update|delete|select每一個標簽分別對應一個MappedStatement2022-11-11Java中的ReentrantLock、ReentrantReadWriteLock、StampedLock詳解
這篇文章主要介紹了Java中的ReentrantLock、ReentrantReadWriteLock、StampedLock詳解,讀寫鎖:一個資源能夠被多個讀線程訪問,或者被一個寫線程訪問但是不能同時存在讀寫線程,需要的朋友可以參考下2024-01-01