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