10月21日動手動腦

2022-05-19 16:10:03 字數 1264 閱讀 6567

自行編寫**測試以下特性,在子類中,若要呼叫父類中被覆蓋的方法,可以使用super關鍵字。

第乙個是呼叫的父類的函式,

第二個呼叫子類的函式;

第三個是將子類賦給父類,相當於呼叫的是子類;

第五個是將父類強制轉化成子類;

下面哪乙個會導致程式執行時錯誤?

m=d; d=m; d=(dog)m; d=c; c=(cat)m;

先進行自我判斷,得出結論後,執行相關**,看看你的判斷是否正確。

自我判斷:"d=m","d=c"引起編譯錯誤

「c=(cat)m」引起執行時錯誤

原因:「d=m」編譯錯誤是因為mammal類是dog類的父類,子類中的成員比父類的多,父類無法將子類初始化;

「d=c」編譯錯誤是因為兩者代表不同的類,不能給對方賦值;

「c=(cat)m」會引起執行時錯誤是因為dog類的物件d已將mammal類的物件m初始化,m被轉換為dog類後不能再轉換為cat類。

動手動腦總結

本次動手動腦結論如下。為什麼要用多型。是因為派生類的功能可以被基類的方法或引用變數所呼叫,這叫向後相容,可以提高可擴充性和可維護性。關於物件導向為什麼要有介面的問題。介面是規範,規定某個實現類裡必須有那些方法,只要事先定義好介面,當大家一起合作的時候就不用特別麻煩的互動,而是每個人寫好自己的介面實現...

動手動腦2

1.編寫乙個方法,使用以上演算法生成指定數目 比如1000個 的隨機整數 a.利用產生隨機數的公式x n 1 axn c mod m計算出所需要的隨機數,利用for迴圈產生每二十個一行的隨機數 b.源 package suijshu10001 public class test public sta...

動手動腦1

package test public class test class foo 因為test類構造了class foo 方法導致系統不再提供預設無引數的構造方法,然而此類並沒有符合class foo的構造方法應該有引數的foo obj1 new foo x x是乙個整數。2.package tes...