第六章作業

2021-10-25 01:28:41 字數 1294 閱讀 1951

以下方**為例

sonaddclass p1 =

newsonaddclass(2

,3,5

);

classa}

public

bgetb()

else

return

null;}

}class

b}

沒有找到極其強烈無法辯駁的用繼承的原因的時候一律用組合

-組合體現為實現層面

-繼承主要體現在擴充套件方面

如果並不是需要乙個類的所有東西(包括介面和屬性),那麼就不需要用繼承,相反就用組合。

用繼承那就必須是所有的都繼承,不是所有的都繼承,那麼就是濫用繼承。

組合在編譯依賴和不同版本的執行時相容性上優於繼承;繼承在合理復用實現的潛力優於組合

繼承偏重集體,具有特殊性的集體(派生類)可以看作是一般性集體(基類)的一部分,如汽車對於交通工具。

組合偏重個體,某個功能物件被宿主物件看成自己的一部分,如輪子對於汽車

與看待事物的角度有關,繼承偏抽象,組合偏具體。

**當中體現多型性,概括為一句話,父類引用指向子類物件。

//父類名稱 物件名 =new 子類名稱();

//介面名稱 物件名=new 實現類名稱();

//父類

package cn.itcast.day10.demo04;

public

classfu(

)//子類

package cn.itcast.day10.demo04;

public

classzi(

)package cn.itcast.day10.demo04;

public

class

demo01multi

}

instanceof用於判斷前面的物件是否是後面的類,或者其子類、實現類的例項。就是判斷乙個物件的宣告是否為該物件的例項引用。

a a=

newa()

那麼使用instanceof時為true或者

a a=

newb()

然後b是a的子類那麼結果為

false反過來為true

第六章作業

例題6.1 舉例說明了指標的幾種表示形式,p指向指標指向的變數,p指向該變數的儲存位址,例題6.1 指標的幾種形式 自動化1121 李慶典 include 預編譯處理命令 using namespace std 標準名字空間 int main q 0 cout string1 is cout 例題6...

第六章作業

6.12 要求 1 建立基類area cl的兩個派生類rectangle與isosceles,讓每乙個派生類都包含乙個函式area 分別用來返回矩形與三角形的面積。用建構函式對height與width進行初始化。2 寫出主程式,用來求height與width分別為10.0與5.0的矩形面積,以及求h...

作業第六章

一簡答題 1.說明在迴圈結構中break和continue語句的區別。答 break語句 用於終止某個迴圈,程式跳轉到迴圈體外的下一條語句。continue語句 用於跳出本次迴圈,進入下一次迴圈。2.使用for迴圈結構實現 從鍵盤上輸入接收從周一到周五每天學習時間 以小時為單位 並計算每日平均學習時...