實驗5繼承與介面

2023-02-10 23:57:07 字數 2730 閱讀 5370

[實驗目的]

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 定義乙個擴充套...