版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο蟪绦蛟O(shè)計(jì)
類的繼承教師:張立涓面向?qū)ο蟪绦蛟O(shè)計(jì)
類的繼承教師:張立涓1本單元教學(xué)內(nèi)容理解繼承的基本概念使用extends實(shí)現(xiàn)繼承類成員的繼承規(guī)則子類對父類的擴(kuò)展本單元教學(xué)內(nèi)容理解繼承的基本概念21、討論:圖所表示的關(guān)系2、輪船——客輪的關(guān)系示例(共性與個(gè)性)3、列舉其它的類似關(guān)系學(xué)生人公司雇員中學(xué)生大學(xué)生經(jīng)理普通員工輪船客輪貨輪父類(或基類、超類)子類(或派生類)
幾個(gè)實(shí)例1、討論:圖所表示的關(guān)系學(xué)生人公司雇員中學(xué)生大學(xué)生經(jīng)理普通員3考察以下例子飛機(jī)票:屬性:單價(jià)、始發(fā)站、終點(diǎn)站、航班號、座位號、倉位等級、航空公司。方法:價(jià)格查詢等?;疖嚻保簩傩裕簡蝺r(jià)、始發(fā)站、終點(diǎn)站、車次、座位號、座位類型。方法:價(jià)格查詢等。船票:屬性:單價(jià)、始發(fā)站、終點(diǎn)站、輪船號、座位號、座位類型。方法:價(jià)格查詢等??疾煲韵吕语w機(jī)票:4思考觀察P89-91關(guān)于飛機(jī)票、火車票、客車票、船票類的聲明代碼冗余度如何?各個(gè)類之間有多少重復(fù)的代碼?思考觀察P89-91關(guān)于飛機(jī)票、火車票、客車票、船票類的5類之間的繼承關(guān)系圖示類之間的繼承關(guān)系圖示6程序演示—父類的聲明//父類TicketclassTicket{ protecteddoubleprice;//票單價(jià) protectedStringstartStation;//始發(fā)站 protectedStringendStation;//終點(diǎn)站protectedStringseatNum;//座位號 publicdoublegetPrice(){ returnprice; } publicStringgetInfo(){ return"票價(jià)"+price+"始發(fā)站"+startStation+"終點(diǎn)站"+endStation; }}我們歸納出所有類的共性,作為父類(Ticket類)的成員變量和成員方法程序演示—父類的聲明//父類Ticket我們歸納出所有類的共7程序演示—類的繼承//Ticket類的子類描述飛機(jī)票classPlaneTicketextendsTicket{ protectedStringflightNum;//航班號 protectedStringseatType;//艙位等級 protectedbooleanroundTrip;//是否為往返機(jī)票 protectedStringairlineCompany;//航空公司}程序演示—類的繼承//Ticket類的子類描述飛機(jī)票8繼承的語法繼承的語法使用關(guān)鍵字extends 格式:class子類名extends父類名{}
如:classManagerextendsEmpoyee{……}繼承的語法9練習(xí)繼承父類Ticket,完成其他子類(火車票、客車票、船票)的聲明練習(xí)繼承父類Ticket,完成其他子類(火車票、客車票、船票10成員屬性與成員方法的繼承規(guī)則父類
publicdefaultprotectedprivate同一包中子類publicdefaultprotected不被繼承類繼承具有傳遞性,即子類繼承父類的所有非私有成員,也繼承父類的父類直至祖先的所有的非私有成員。成員屬性與成員方法的繼承規(guī)則父類publicdefaultp11子類對父類的擴(kuò)展子類除了繼承父類的成員變量和成員方法外,還可以添加新的成員變量和成員方法,用于描述自己的特征和行為。 例如,類PlaneTicket除了繼承父類Ticket的成員變量和成員方法外,還添加了自己的成員變量flightNum(航班號)、seatType(艙位等級)、airlineCompany(航空公司)等
子類對父類的擴(kuò)展子類除了繼承父類的成員變量和成員方法外,還可12單繼承Java只支持單繼承,也即一個(gè)類只能有一個(gè)父類。單繼承Java只支持單繼承,也即一個(gè)類只能有一個(gè)父類。13分析與討論襯衣與裙子類具有許多相同的屬性,能否將它們看成一種繼承關(guān)系?分析與討論襯衣與裙子類具有許多相同的屬性,能否將它們看成一種14深入理解繼承概念面向?qū)ο笾械睦^承是一個(gè)基于分類學(xué)的概念,繼承描述的是一種“isa”的關(guān)系。子類是父類在同一個(gè)分類分支上的一個(gè)更為特殊的類,只有當(dāng)類之間存在的是一種能夠被描述為:“子類isa父類”的時(shí)候,我們才使用繼承。因此,在面向?qū)ο蟪绦蛟O(shè)計(jì)中,Skirt與Shirt類不能表示為一種繼承關(guān)系。深入理解繼承概念面向?qū)ο笾械睦^承是一個(gè)基于分類學(xué)的概念,繼承15添加抽象服裝襯衣裙子添加抽象服裝襯衣裙子16練習(xí)1.創(chuàng)建一個(gè)具有確定位置矩形類PlainRect,該類繼承于類Rect,其確定位置用矩形的左上角坐標(biāo)來標(biāo)識,為該類添加:子類擴(kuò)展兩個(gè)屬性:矩形左上角坐標(biāo)startX和startY。練習(xí)1.創(chuàng)建一個(gè)具有確定位置矩形類PlainRect,該類繼17練習(xí)2.編寫上題PlainRect類的測試程序(1)創(chuàng)建一個(gè)左上角坐標(biāo)為(10,10),長為20,寬為10的矩形對象;(2)計(jì)算并打印輸出矩形的面積;練習(xí)2.編寫上題PlainRect類的測試程序18思考子類可以繼承父類的所有非私有成員,那么構(gòu)造器方法是否可以繼承?子類擴(kuò)展的成員屬性又該如何初始化呢?思考子類可以繼承父類的所有非私有成員,那么構(gòu)造器方法是否可以19子類的構(gòu)造器方法//父類構(gòu)造器方法 publicTicket(doubleprice,StringstartStation,StringendStation,StringseatNum){ this.price=price; this.startStation=startStation; this.endStation=endStation; this.seatNum=seatNum; }//子類構(gòu)造器方法publicPlaneTicket(doubleprice,StringstartStation,StringendStation,StringflightNum,StringseatNum,StringseatType,booleanroundTrip,StringairlineCompany){
super(price,startStation,endStation,seatNum);//調(diào)用父類Ticket構(gòu)造器方法 this.flightNum=flightNum;}子類的構(gòu)造器方法//父類構(gòu)造器方法//子類構(gòu)造器方法20練習(xí)添加其他子類的構(gòu)造器方法思考:若父類重新聲明了構(gòu)造器方法,子類是否還可以使用默認(rèn)的構(gòu)造器方法?練習(xí)添加其他子類的構(gòu)造器方法21練習(xí)為父類Rect類聲明構(gòu)造器方法,初始化矩形的長和寬為子類PlainRect聲明構(gòu)造器方法,初始化長、寬和左上角坐標(biāo)創(chuàng)建一個(gè)矩形對象,長為20,寬為10,左上角坐標(biāo)(1,2);練習(xí)為父類Rect類聲明構(gòu)造器方法,初始化矩形的長和寬22思考子類是否可以重新聲明從父類繼承過來的方法?思考子類是否可以重新聲明從父類繼承過來的方法?23方法的覆蓋//父類Ticket的getInfo()方法publicStringgetInfo(){ return"\n票價(jià):"+price+"\n始發(fā)站:"+startStation+"\n終點(diǎn)站:"+endStation+"\n座位號:"+seatNum; }//子類VehicleTicket覆蓋父類getInfo()方法 publicStringgetInfo(){ returnsuper.getInfo()+"\n車次:"+vehicleNum; }方法的覆蓋//父類Ticket的getInfo()方法//子24方法的覆蓋歸納一下,方法覆蓋(override)的規(guī)則如下:方法名與被覆蓋的方法名必須一樣;參數(shù)列表必須與被覆蓋的方法一樣;返回類型必須與被覆蓋的方法一樣;訪問控制級別不能比被覆蓋的方法高思考:和方法的重載有什么不同?方法的覆蓋歸納一下,方法覆蓋(override)的規(guī)則如下:25練習(xí)為父類Rect聲明getInfo()方法,輸出矩形的長和寬在子類PlainRect覆蓋getInfo()方法,輸出矩形的長、寬、左上角坐標(biāo)練習(xí)為父類Rect聲明getInfo()方法,輸出矩形的長和26小結(jié)使用extends實(shí)現(xiàn)繼承類成員的繼承規(guī)則子類對父類的擴(kuò)展子類的構(gòu)造器方法方法的覆蓋小結(jié)使用extends實(shí)現(xiàn)繼承27面向?qū)ο蟪绦蛟O(shè)計(jì)
類的繼承教師:張立涓面向?qū)ο蟪绦蛟O(shè)計(jì)
類的繼承教師:張立涓28本單元教學(xué)內(nèi)容理解繼承的基本概念使用extends實(shí)現(xiàn)繼承類成員的繼承規(guī)則子類對父類的擴(kuò)展本單元教學(xué)內(nèi)容理解繼承的基本概念291、討論:圖所表示的關(guān)系2、輪船——客輪的關(guān)系示例(共性與個(gè)性)3、列舉其它的類似關(guān)系學(xué)生人公司雇員中學(xué)生大學(xué)生經(jīng)理普通員工輪船客輪貨輪父類(或基類、超類)子類(或派生類)
幾個(gè)實(shí)例1、討論:圖所表示的關(guān)系學(xué)生人公司雇員中學(xué)生大學(xué)生經(jīng)理普通員30考察以下例子飛機(jī)票:屬性:單價(jià)、始發(fā)站、終點(diǎn)站、航班號、座位號、倉位等級、航空公司。方法:價(jià)格查詢等?;疖嚻保簩傩裕簡蝺r(jià)、始發(fā)站、終點(diǎn)站、車次、座位號、座位類型。方法:價(jià)格查詢等。船票:屬性:單價(jià)、始發(fā)站、終點(diǎn)站、輪船號、座位號、座位類型。方法:價(jià)格查詢等??疾煲韵吕语w機(jī)票:31思考觀察P89-91關(guān)于飛機(jī)票、火車票、客車票、船票類的聲明代碼冗余度如何?各個(gè)類之間有多少重復(fù)的代碼?思考觀察P89-91關(guān)于飛機(jī)票、火車票、客車票、船票類的32類之間的繼承關(guān)系圖示類之間的繼承關(guān)系圖示33程序演示—父類的聲明//父類TicketclassTicket{ protecteddoubleprice;//票單價(jià) protectedStringstartStation;//始發(fā)站 protectedStringendStation;//終點(diǎn)站protectedStringseatNum;//座位號 publicdoublegetPrice(){ returnprice; } publicStringgetInfo(){ return"票價(jià)"+price+"始發(fā)站"+startStation+"終點(diǎn)站"+endStation; }}我們歸納出所有類的共性,作為父類(Ticket類)的成員變量和成員方法程序演示—父類的聲明//父類Ticket我們歸納出所有類的共34程序演示—類的繼承//Ticket類的子類描述飛機(jī)票classPlaneTicketextendsTicket{ protectedStringflightNum;//航班號 protectedStringseatType;//艙位等級 protectedbooleanroundTrip;//是否為往返機(jī)票 protectedStringairlineCompany;//航空公司}程序演示—類的繼承//Ticket類的子類描述飛機(jī)票35繼承的語法繼承的語法使用關(guān)鍵字extends 格式:class子類名extends父類名{}
如:classManagerextendsEmpoyee{……}繼承的語法36練習(xí)繼承父類Ticket,完成其他子類(火車票、客車票、船票)的聲明練習(xí)繼承父類Ticket,完成其他子類(火車票、客車票、船票37成員屬性與成員方法的繼承規(guī)則父類
publicdefaultprotectedprivate同一包中子類publicdefaultprotected不被繼承類繼承具有傳遞性,即子類繼承父類的所有非私有成員,也繼承父類的父類直至祖先的所有的非私有成員。成員屬性與成員方法的繼承規(guī)則父類publicdefaultp38子類對父類的擴(kuò)展子類除了繼承父類的成員變量和成員方法外,還可以添加新的成員變量和成員方法,用于描述自己的特征和行為。 例如,類PlaneTicket除了繼承父類Ticket的成員變量和成員方法外,還添加了自己的成員變量flightNum(航班號)、seatType(艙位等級)、airlineCompany(航空公司)等
子類對父類的擴(kuò)展子類除了繼承父類的成員變量和成員方法外,還可39單繼承Java只支持單繼承,也即一個(gè)類只能有一個(gè)父類。單繼承Java只支持單繼承,也即一個(gè)類只能有一個(gè)父類。40分析與討論襯衣與裙子類具有許多相同的屬性,能否將它們看成一種繼承關(guān)系?分析與討論襯衣與裙子類具有許多相同的屬性,能否將它們看成一種41深入理解繼承概念面向?qū)ο笾械睦^承是一個(gè)基于分類學(xué)的概念,繼承描述的是一種“isa”的關(guān)系。子類是父類在同一個(gè)分類分支上的一個(gè)更為特殊的類,只有當(dāng)類之間存在的是一種能夠被描述為:“子類isa父類”的時(shí)候,我們才使用繼承。因此,在面向?qū)ο蟪绦蛟O(shè)計(jì)中,Skirt與Shirt類不能表示為一種繼承關(guān)系。深入理解繼承概念面向?qū)ο笾械睦^承是一個(gè)基于分類學(xué)的概念,繼承42添加抽象服裝襯衣裙子添加抽象服裝襯衣裙子43練習(xí)1.創(chuàng)建一個(gè)具有確定位置矩形類PlainRect,該類繼承于類Rect,其確定位置用矩形的左上角坐標(biāo)來標(biāo)識,為該類添加:子類擴(kuò)展兩個(gè)屬性:矩形左上角坐標(biāo)startX和startY。練習(xí)1.創(chuàng)建一個(gè)具有確定位置矩形類PlainRect,該類繼44練習(xí)2.編寫上題PlainRect類的測試程序(1)創(chuàng)建一個(gè)左上角坐標(biāo)為(10,10),長為20,寬為10的矩形對象;(2)計(jì)算并打印輸出矩形的面積;練習(xí)2.編寫上題PlainRect類的測試程序45思考子類可以繼承父類的所有非私有成員,那么構(gòu)造器方法是否可以繼承?子類擴(kuò)展的成員屬性又該如何初始化呢?思考子類可以繼承父類的所有非私有成員,那么構(gòu)造器方法是否可以46子類的構(gòu)造器方法//父類構(gòu)造器方法 publicTicket(doubleprice,StringstartStation,StringendStation,StringseatNum){ this.price=price; this.startStation=startStation; this.endStation=endStation; this.seatNum=seatNum; }//子類構(gòu)造器方法publicPlaneTicket(doubleprice,StringstartStation,StringendStation,StringflightNum,StringseatNum,StringseatType,booleanroundTrip,StringairlineCompany){
super(price,startStation,endStation,seatNum);//調(diào)用父類Ticket構(gòu)造器方法 this.flightNum=flightNum;}子類的構(gòu)造器方法//父類構(gòu)造器方法//子類構(gòu)造器方法47練習(xí)添加其他子類的構(gòu)造器方法思考:若父類重新聲明了構(gòu)造器方法,子類是否還可以使用默認(rèn)的構(gòu)造器方法?練習(xí)添加其他子類的構(gòu)造器方法48練習(xí)為父類Rect類聲明構(gòu)造器方法,初始化矩形的長和寬為子
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030汽車發(fā)動機(jī)零部件制造行業(yè)競爭態(tài)勢技術(shù)研發(fā)投資評估產(chǎn)能規(guī)劃分析報(bào)告
- 2025-2030汽車制造業(yè)產(chǎn)業(yè)供求分析投資評估生產(chǎn)經(jīng)營行業(yè)規(guī)劃資料
- 2025-2030污水處理行業(yè)技術(shù)革新和環(huán)境保護(hù)規(guī)劃分析報(bào)告評估
- 2026年跨境營銷策劃公司海外供應(yīng)商合作管理制度
- 2026年跨境電商公司員工試用期考核管理制度
- 學(xué)籍管理實(shí)施細(xì)則制度
- 學(xué)生社團(tuán)管理制度
- 城市信息模型公共設(shè)施管理課題申報(bào)書
- 金融場景下的自然語言處理應(yīng)用-第4篇
- 2026年時(shí)尚行業(yè)創(chuàng)新報(bào)告及可持續(xù)時(shí)尚發(fā)展策略報(bào)告
- 能源行業(yè)人力資源開發(fā)新策略
- 工作照片拍攝培訓(xùn)課件
- 2025年海南三亞市吉陽區(qū)教育系統(tǒng)公開招聘編制教師122人(第1號)筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫參考答案詳解
- 托管學(xué)校合作合同協(xié)議
- 產(chǎn)品銷售團(tuán)隊(duì)外包協(xié)議書
- 2025年醫(yī)保局支部書記述職報(bào)告
- 汽車充電站安全知識培訓(xùn)課件
- 世說新語課件
- 全體教師大會上副校長講話:點(diǎn)醒了全校200多名教師!毀掉教學(xué)質(zhì)量的不是學(xué)生是這7個(gè)環(huán)節(jié)
- 民航招飛pat測試題目及答案
評論
0/150
提交評論