導航:首頁 > 創造發明 > 創造子類對象後發生了什麼

創造子類對象後發生了什麼

發布時間:2021-12-05 22:31:56

1. 創建子類的對象時是不是也同時創建了父類對象啊

只創建子類對象,
子類對象包括兩個部分,
自己特有的屬性和方法+從父類繼承來的屬性和方法.

2. 有個疑問生成子類對象沒有生成父類對象,那麼super指向的父類對象是什麼時候生成的

我用非標準的語言來說一下:
當一個子類對象生成時,其內部是包含一個父類對象的,但是對於父類對象的私有部分,子類對象不可訪問。

3. Java中創建一個子類對象,強制把它轉換成父類定義為一個新的父類對象,那麼這個強制轉換了的對象

算,不是強制,而知這種轉化肯定成功。
當把子類對象賦給父類引用對象時,被稱為向上轉型,這種轉型總是可以成功的,這也從另一個側面證實了子類是一種特殊的父類。這種轉型只是表明這個引用變數編譯時類型是父類,但實際執行它的方法時,依然表現出子類對象的行為方式。

4. java中,創建子類對象時,父類對象會也被一起創建么

父類的構造函數會執行,但是不會創建父類對象

5. 新建父類引用到子類對象實現子類轉換為父類類型後,子類對象所擁有的父類沒有的屬性是否會消失

這個不會消失,但是父類看不到子類的屬性,也就是說調用不到的。
但是如果你把 個由子類轉換來的父類引用交給一個子類時,屬性就可以調用了。
如:
// Child有一個父類沒有的屬性x
Child c = new Child();
Parent p = c;
System.out.println(p.x); //這里在編譯時會報錯,因為對Parent類來說,是沒有x這個屬性的。
Child cc = p;
System.out.println(cc.x); // 轉換回來後,可以正常調用並且得到值。

關於地址的問題。因為賦值操作都是把地址交給不同的變數,只是變數的指向變化了,而地址是沒有發生改變的。

6. 為什麼在創建子類對象的時候會調用父類的構造函數

對象自己就是一個父類對象。除非是對象的構造方法里創建了父類對象,否則沒有創建父類對象。

7. C++中,創建子類對象時,是否已經創建了一個無名父類對象

額。。樓主適合當哲學家。但是實際上區分到底是包含還是並列並沒有實際意義。
所謂的繼承只不過是strousp大大定義的一種抽象的概念,具體怎麼實現的根據編譯器而定。甚至即便是編譯器也未必清楚的採用了無名對象亦或是同名對象。反正當一個新的子類對象初始化時,系統會根據它和它的父對象初始化它。
不過在有些情況下把他按照無名對象理解確實可以,比如說在私有繼承或保護繼承時。
class son :private father son a; 這是其父類的表現更像是son的一個成員變數,也就是你所說的包含而不是融合。

這樣的回答滿意嗎?

8. java中創建子類對象的過程

如果實例化的類有父類存在,則:
在第一次進行子類實例化時,執行順序為:
初始化父類靜態 成員變數、子類靜態成員變數、父類非靜態成員變數、父類 構造函數、子類非靜態成員變數、子類構造函數;
如果不是第一次進行實例化,則執行順序為:
父類非靜態成 員變數、父類構造函數、子類非靜態成員變數、子類構造函 數

9. 子類對象的實例化過程

對於許多Java老手來說,子類對象的實例化過程也不見得非常清楚,你可能並不需要完全了解子類對象的實例化過程,但了解後還是有好處的。對象中的成員變數的初始化是按下述步驟進行的:1).分配成員變數的存儲空間並進行默認的初始化,就是用new關鍵字產生對象後,對類中的成員變數按第三章的表3.1中的對應關系對對象中的成員變數進行初始化賦值。2).綁定構造方法參數,就是new Person(實際參數列表)中所傳遞進的參數賦值給構造方法中的形式參數變數。3).如有this()調用,則調用相應的重載構造方法(被調用的重載構造方法又從步驟2開始執行這些流程),被調用的重載構造方法的執行流程結束後,回到當前構造方法,當前構造方法直接跳轉到步驟6執行。4).顯式或隱式追溯調用父類的構造方法(一直到Object類為止,Object是所有Java類的最頂層父類,在本章後面部分有詳細講解),父類的構造方法又從步驟2開始對父類執行這些流程,父類的構造方法的執行流程結束後,回到當前構造方法,當前構造方法繼續往下執行。5).進行實例變數的顯式初始化操作,也就是執行在定義成員變數時就對其進行賦值的語句,如:public Student extends Person{String school = 」it315」;// 顯式初始化……}將「it315」賦值給school成員變數。6).執行當前構造方法的方法體中的程序代碼,如public Student extends Person{public Student(String name,int age,String school){super(name,age);this.school=school;}}這一步將執行this.school=school;這條語句,其中用到的super()或this()方法調用語句已在前面的步驟中執行過,這里就不再執行了。注意區別剛才所說的this()方法調用語句與this.school=school的區別,前者指調用其他的構造方法,後者是一個普通的賦值語句。為了便於讀者直觀地看到子類對象的實例化過程,我將上面的流程用圖4.1進行了重復描述。圖4.1回過頭來想一想:1).為什麼super(…)和this(…)調用語句不能同時在一個構造函數中出現?2).為什麼super(…)或this(…)調用語句只能作為構造函數中的第一句出現?對照對象初始化實例變數過程,我們就發現這兩種情況都違背上面的過程,所以讀者應該明白上面兩個問題的原因了。

10. 高人,java中,在創建子類的對象時,是不是同時也創建了一個對應的父類的對象

這個應該是沒有的,只是子類繼承了父類的成員變數和方法,所以生成子類的對象時就可以直接引用父類的變數和方法了。還有就是也可以用一下向上轉型,那麼就可以生成一個父類的引用和子類的對象。

閱讀全文

與創造子類對象後發生了什麼相關的資料

熱點內容
中國科學院無形資產管理辦法 瀏覽:67
注冊資本金認繳期限 瀏覽:828
申請商標到哪個部門 瀏覽:762
購買無形資產的相關稅費可以抵扣嗎 瀏覽:982
商標注冊被騙怎麼辦 瀏覽:160
朗太書體版權 瀏覽:268
大學無形資產管理制度 瀏覽:680
馬鞍山向山鎮黨委書記 瀏覽:934
服務創造價值疏風 瀏覽:788
工商登記代名協議 瀏覽:866
2015年基本公共衛生服務項目試卷 瀏覽:985
創造營陳卓璇 瀏覽:905
安徽職稱計算機證書查詢 瀏覽:680
衛生院公共衛生服務會議記錄 瀏覽:104
泉州文博知識產權 瀏覽:348
公共衛生服務培訓會議小結 瀏覽:159
馬鞍山攬山別院價格 瀏覽:56
施工索賠有效期 瀏覽:153
矛盾糾紛交辦單 瀏覽:447
2010年公需課知識產權法基礎與實務答案 瀏覽:391