實(shí)驗(yàn)4 繼承與接口(一)_第1頁
實(shí)驗(yàn)4 繼承與接口(一)_第2頁
實(shí)驗(yàn)4 繼承與接口(一)_第3頁
實(shí)驗(yàn)4 繼承與接口(一)_第4頁
實(shí)驗(yàn)4 繼承與接口(一)_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 實(shí)驗(yàn)4、繼承與接口(一)1、 實(shí)驗(yàn)?zāi)康?. 子類的繼承性2. 子類對象的創(chuàng)建過程3. 成員變量的繼承與隱藏4. 方法的繼承與重寫 5. 掌握繼承實(shí)現(xiàn)的各種限制。6. 掌握子類對象的實(shí)例化過程。7. 掌握方法重寫的概念及實(shí)現(xiàn)。8. 了解Object及對Object類的主要方法進(jìn)行重寫。2、 實(shí)驗(yàn)內(nèi)容及步驟1理解繼承的含義任務(wù)一:學(xué)習(xí)繼承實(shí)例 (1)內(nèi)容及步驟步驟一:創(chuàng)建一個基本的學(xué)生類,源代碼如下。public class Studentprotected String name; /具有保護(hù)修飾符的成員變量protected int id;void setdata(String name,i

2、nt id) /設(shè)置數(shù)據(jù)的方法 =name;this.id= id;public void print() /輸出數(shù)據(jù)的方法 System.out.println("name="+name+ " ,"+ " id="+id);步驟二:編譯Student.java,產(chǎn)生類文件Student.class。步驟三:創(chuàng)建繼承的類通過Student 類產(chǎn)生子類ColStu,其不僅具有父類的成員變量,還定義了新成員變量xy(學(xué)院)、xi(系)。在程序中調(diào)用了父類的print 方法,同時可以看出子類也具有該方法。源代碼如下:cla

3、ss ColStu extends Student protected String xy; protected String xi; public static void main(String args) Student p1 = new Student(); p1.setdata("帥零",12321) ; p1.print(); ColStu s1 = new ColStu() ; s1.setdata("郭麗娜",12345); /調(diào)用父類的成員方法 s1.xy="經(jīng)濟(jì)管理學(xué)院" /訪問本類的成員變量 s1.xi="

4、;信息管理系" /訪問本類的成員變量 s1.print(); System.out.println("name="++","+"xy="+s1.xy+","+"xi="+s1.xi); 步驟四:編譯并運(yùn)行程序。注意:公共類Student 與ColStu類要在同一文件夾(包)內(nèi)。(1) 實(shí)驗(yàn)報告將運(yùn)行結(jié)果寫在實(shí)驗(yàn)報告中。思考:如果子類與父類不在同一包中子類會繼承父類哪些變量和方法?任務(wù)二: 根據(jù)父類及以下描述編寫子類。在Vehicle類的基礎(chǔ)上創(chuàng)建一個Tractor(拖拉機(jī)

5、)類,它不但擁有journey,wheelNum,loadNum,driveSpeed 四種屬性和driveAt()方法,而且還擁有自己的plough(耕地)方法,在該方法中要求能夠顯示journey,wheelNum,loadNum三個屬性的值,在應(yīng)用程序中分別使用Tractor類的對象調(diào)用plough()和driveAt方法。public class Vehiclepublic float journey; public int wheelNum; public int loadNum; public int driveSpeed; public Vehicle()journey=100.

6、3f;wheelNum=4;loadNum=1;public void driveAt(int speed)if (speed>=60)System.out.println("行車速度太快,容易造成事故");/如果要求的車速太快,則機(jī)動車自動以40單位速度行駛driveSpeed=40;else System.out.println("你在安全行駛速度內(nèi)行駛");driveSpeed=speed; 2、成員變量的隱藏和成員方法的覆蓋任務(wù)一:學(xué)習(xí)實(shí)例變量的隱藏和方法的覆蓋(1) 內(nèi)容及步驟步驟一:創(chuàng)建父類class A int i,j; void s

7、etIJ(int a,int b) i=a; j=b; int multiply() return i*j; 步驟二:創(chuàng)建子類Bclass B extends A int i,k; /聲明了一個和父類同名的變量i,隱藏了父類的i B(int a,int b) i=a; k=b; int multiply()/* 重寫了父類的multiply()方法 */ return i*j*k; 步驟三:創(chuàng)建并運(yùn)行應(yīng)用程序。public class LX public static void main(String a) B subO=new B(6,9); subO.setIJ(7,8); int m=s

8、ubO.multiply(); System.out.println("m = "+m); 步驟四:編譯運(yùn)行程序。(2) 實(shí)驗(yàn)報告將運(yùn)行結(jié)果寫在實(shí)驗(yàn)報告中。思考:但通過子類對象subO調(diào)用setIJ的方法時,為變量i和j賦值時,i與j分別是屬于誰的?父類?子類?分析獲得此運(yùn)行結(jié)果的原因。任務(wù)二:分析結(jié)果并驗(yàn)證(1)在以下程序中出現(xiàn)了成員隱藏,試分析程序運(yùn)行的結(jié)果。(2)編譯運(yùn)行下面程序,驗(yàn)證分析的結(jié)果,掌握成員隱藏時屬性的變化規(guī)則。 class Fatherint a=100;public void miner()a-;public class Son extends Fa

9、ther int a=0; public int getA()return super.a;public static void main(String arg)Father father=new Father();Son son=new Son();System.out.println("a of son is :" +son.a);System.out.println("a of son's super is :" +son.getA();son.miner();System.out.println("a of son is :&q

10、uot;+son.a);System.out.println("a of son's super is :" +son.getA();(3) 實(shí)驗(yàn)報告將運(yùn)行結(jié)果寫在實(shí)驗(yàn)報告中。3、觀察子類對象的實(shí)例化過程任務(wù)一:分析應(yīng)用程序的運(yùn)行結(jié)果,并上機(jī)驗(yàn)證。(1)源代碼:class Person private String name; private int age; public Person() System.out.println(“父類Person中的構(gòu)造方法?!?; public String getName() return name;public void s

11、etAge(int age) this. age = age;public int getAge() return age;public void setName(String name) = name;class Student extends Personprivate String school;public Student() System.out.println(“子類Student中的構(gòu)造方法。”);public String getSchool() return school;public void setSchool(String school) this.

12、school = school;public class InstanceDemo public static void main(String args) Student stu = new Student(); stu.setName(“張三”); stu.setAge(30); stu.setSchool(“清華大學(xué)”); System.out.println(“姓名:”+stu.getName()+”,年齡:”+stu.getAge()+”,學(xué)校:”+stu.getSchool(); (2)實(shí)驗(yàn)報告將運(yùn)行結(jié)果寫在實(shí)驗(yàn)報告中,并解釋獲得此結(jié)果的原因。 4、方法的重寫任務(wù)一:編譯Stude

13、nt類,查看結(jié)果。(1) 源代碼如下: class Personpublic void print() System.out.println(“Person-àvoid print()”);class Student extends Personvoid print() System.out.println(“Student-àvoid print()”);(2) 實(shí)驗(yàn)報告將Student類編譯后提示怎樣的信息?分析為什么會有這樣的信息。4、Object類任務(wù)一:toString方法的理解。(1) 觀察程序輸出結(jié)果。源代碼:class Demopublic class ObjectDemo1public static void main(String args) Demo d = new Demo();System.out.println(“不加toString()輸出:”+d);System.out.println(“加toString()輸出:”+d.toSting();(2)編譯運(yùn)行程序,觀察結(jié)果。(3)實(shí)驗(yàn)報告將運(yùn)行結(jié)果寫在實(shí)驗(yàn)報告中。思考:為什么兩次輸出都是同樣結(jié)果。 Demo有父類嗎?任務(wù)二:根據(jù)對Object類的方法的學(xué)習(xí)及上例的理解,完成以下代碼。(1) 源代碼:cl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論