多型 結合一段程式,輸出結果,注意分析

2021-10-06 09:13:27 字數 990 閱讀 9808

解析,這裡為了方便看,我就把三個類放到了一起寫,我結合題目給大家做乙個圖形分析

這個題目是比較難的,注意看圖

從main方法裡面開始在棧空間裡面new了兩個變數a,b

a 是指向堆裡面的 new a() b指向堆裡面的new b()

注意,因為a是b的父類,子類在new 物件的時候會先new 乙個父類的物件,所以new b(),也有乙個newa () 初始的內容是「s」

執行a.sets("[aa]"); b.sets("[bb]");

該程式之後newa ()裡面變成了aa, newb()裡面變成了bb,但是newb ()中繼承的部分是沒有改變的

a = b;

這裡把b的記憶體位址給了a,此時a,b都指向newb();上面乙個空間直接被**了

system.out.print(a.s); //a a=new b();

這是乙個多型,傳進來的是b,對於屬性, 執行向左看,所以指向的是父類的s–a

system.out.print(b.s);

這裡就是顯示b的屬性 此時s=「bb」

system.out.print(a.gets());

這裡也是乙個多型,執行方法的時候是向右看的,執行b中的gets() 也是bb

system.out.print(b.gets());

最後是直接b呼叫b.gets(),輸出結果還是bb

所以結果是a bb bb bb

一段小程式 3

做個題目練練手,不然c語言都忘記了。設計一程式實現功能,處理字串a,處理規則是 只要b字串裡面有的字母,不分大小寫,一律從a字串中刪掉。1 請畫出此演算法的流程圖 2 請用c語言編寫對應的 include stdio.h include stdlib.h include string.h defin...

一段程式看懂位元幣原理

自從位元幣火起來以後,網上對位元幣的解釋可謂汗牛充棟,紛繁複雜。但對於程式設計師來說,最直接的方式莫過於直接看程式 了。嫌位元幣 龐雜沒關係,我找到一段簡明扼要的 用來理解位元幣再好不過了。以下這段程式 知乎上wu hao的回答。function mine function sendbtc amou...

react 簡單在頁面中輸出一段文字

之前用腳手架建立了乙個react專案,將react自帶的src資料夾刪除後建立乙個空的src資料夾 在src資料夾中建立乙個index.jsx檔案作為js入口檔案並建立乙個hello元件 現在我們進入到hello.jsx 1 import react from react 2 宣告元件 3class...