[實驗目的]
1、掌握j**a 繼承中父類及其子類的定義方法。
2、掌握子類重寫父類同名方法的方法。
3、掌握介面的用法。
(1) 學習如何定義介面 ;
(2) 掌握介面的實現方式 ;
(3) 使用實現了介面的類 ;
(4) 理解介面與抽象類的區別。
[實驗要求]
1、 複習理論教學中所學的內容。
2、 認真進行實驗預習,查閱參考書,書寫源程式,書寫實驗預習報告。
3、 認真總結實驗並書寫實驗報告。
[實驗課時] 2學時
[實驗教學方式] 學生上機實驗,教師隨堂指導。
[實驗內容]
1、 類的繼承性練習
【新類可從現有的類中產生,並保留現有類的成員變數和方法並可根據需要對它們加以修改。新類還可新增新的變數和方法。這種現象就稱為類的繼承。
當建立乙個新類時,不必寫出全部成員變數和成員方法。只要簡單地宣告這個類是從乙個已定義的類繼承下來的,就可以引用被繼承類的全部成員。被繼承的類稱為父類或超類(superclass),這個新類稱為子類。
j**a 提供了乙個龐大的類庫讓開發人員繼承和使用。設計這些類是出於公用的目的,因此,很少有某個類恰恰滿足你的需要。你必須設計自己的能處理實際問題的類,如果你設計的這個類僅僅實現了繼承,則和父類毫無兩樣。
所以,通常要對子類進行擴充套件,即新增新的屬性和方法。這使得子類要比父類大,但更具特殊性,代表著一組更具體的物件。繼承的意義就在於此。
】【】中的讀完刪掉不作為實驗報告的一部分
(一)建立將被繼承的類
(1) 程式源**如下。
public class exp3_7
public void print() //輸出資料的方法
}(2) 編譯源程式。
public class exp3_7
public void print() //輸出資料的方法
}(二)建立將被繼承的類
(1) 程式功能:通過exp3_7類產生子類exp3_8,其不僅具有父類的成員變數xm(姓名)、xh(學號),還定義了新成員變數xy(學院)、bj(bj)。在程式中呼叫了父類的print 方法,同時可以看出子類也具有該方法。
(2) 程式源**如下。
class exp3_8 extends exp3_7
}(1) 編譯並執行,結果如圖3.7所示。
class exp3_8 extends exp3_7
}李四, 12321
張三, 12345
張三, 山西大學計算機學院, 2008級電腦科學與技術
執行結果貼圖
圖 3.7
(三)了解成員方法的覆蓋方式
【通過繼承子類可以繼承父類中所有可以被子類訪問的成員方法,但如果子類的方法與父類方法同名,則不能繼承,此時稱子類的方法覆蓋了父類的方法,簡稱為方法覆蓋(override)。方法覆蓋為子類提供了修改父類成員方法的能力。例如,子類可以修改層層繼承下來的object 根類的tostring 方法,讓它輸出一些更有用的資訊。
下面的程式顯示了在子類circle 中新增tostring 方法,用來返回圓半徑和圓面積資訊。】【】中的讀完刪掉不作為實驗報告的一部分
(1) 編寫覆蓋object 類tostring方法的程式檔案exp3_源**如下。
class circle
} public class exp3_9
}(2) 編譯並執行,結果如圖3.8所示。
class circle
public circle()
public int getradius()
public void setradius(int radius)
double area()
public string tostring()
class exp3 extends circle
}}圓半徑:10 圓面積:314.1592653589793
(3) 試著以point類為例,嘗試為object類的clone()和equals()方法進行覆蓋,point類包含私有成員x,y,構造方法1(包含兩個引數a,b),構造方法2(引數為point p),clone方法,equals方法,tostring方法。用testpoint類進行測試。
執行結果貼圖
圖 3.8
class object
public string equals()
}public class point extends object
public point(point p)
public string clone()
public string equals()
public string tostring()
}public class testpoint
this is a clone kkk
this is a equals kkk
(四)this、super和super()的使用
(1) 程式功能:程式功能:說明this、super 和super()的用法。
程式首先定義point(點)類,然後建立點的子類line(線)。最後通過lx3_10 類輸出線段的長度。程式中通過super(a,b)呼叫父類point 的構造方法為父類的x 和y 賦值。
在子類line 的setline方法中,因為引數名和成員變數名相同,為給成員變數賦值,使用this 引用,告訴編譯器是為當前類的成員變數賦值。在length 和tostring 方法中使用父類成員變數時,使用super 引用,告訴編譯器使用的是父類的成員變數。
實驗二 繼承與派生
c 上機實驗報告 專業學號姓名 一 實驗名稱 類與物件 4學時 二 目的要求 1 掌握繼承的意義和語法 2 掌握虛基類的概念與應用。三 實驗內容 1 設計乙個人員類person,包括姓名和衣服 褲子及鞋子的指標 將其衣服 褲子 鞋子分別設計成類clothes pants和shoe的物件,這3個類都是...
實驗2物件導向 b繼承 多型抽象類 介面
實驗2 物件導向 繼承 多型 抽象類 介面 注意 有些程式由於word的關係,複製後,tab縮位可能會變成其它符號。需要你去調整一下,刪除縮位,重新tab 一 實驗目的 1 二 實驗要求 1 三 實驗內容 2 1.類的繼承與覆蓋練習 2 1.0 父類的哪些成員可以被繼承?2 1.1 父類studen...
C實驗委託 事件與繼承
一 實驗目的 1 掌握擴充套件函式的用法 2 掌握c 委託和事件的用法 3 掌握c 繼承和多型概念 4 掌握常用介面的使用方法。二 實驗內容 實驗過程中編寫的程式複製到本檔案中,下課整理後上交 1 編寫乙個靜態類myextensions,擴充套件.framework基本型別的功能。1 定義乙個擴充套...