




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 做 善 良 的 人 學員的事就是最重要的事 課程內容1、多態(tài)2、抽象類3、接口多態(tài)1、多態(tài):事物的多種狀態(tài),polymorphic對象的多態(tài)性:同一個對象,可以有不同的名稱,有不同的類型的引用指向它 本質:同一個對象有不同的名稱和描述類型的多態(tài)性:同一個類型的引用,將來可以指向不同的子類對象 本質:同一個名稱可以描述多種具體的事物2、多態(tài)的前提: 1、要有子父類(接口和實現類)的繼承關系(實現關系) 2、要有方法的重寫 3、父類的引用指向子類的對象在多態(tài)中成員變量的訪問特點1、編譯看左邊,運行看左邊2、編譯的時候,要看【=】左邊的引用的類型中,是否有該變量的定義,如果有,就編譯成功,如果沒有
2、,就編譯失敗。3、運行的時候,要看【=】左邊的引用所屬類型中,真正如何給變量賦值的。獲取到的是引用父類的賦值結果。在多態(tài)中成員方法的訪問特點1、編譯看左邊,運行看右邊2、編譯的時候,要看【=】左邊的引用所屬的類型中,是否有該方法的定義,如果有,就編譯成功,如果沒有,就編譯失敗。3、運行的時候,要看【=】右邊的對象所屬的類型中,是如何實現這個方法的。最終運行的是子類重寫過的方法實現。多態(tài)中靜態(tài)方法的訪問特點1、編譯看左邊,運行看左邊2、編譯時,要看【=】左邊的引用所屬的類型(父類)是否有該方法的定義,如果有就編譯成功,如果沒有,就編譯失敗3、運行的時候,要看【=】左邊的引用所屬的類型中,如何實現
3、該方法的。最終運行的是引用所屬類型中該方法的實現。(方法屬于類,和父類的方法不屬于重寫關系)4、靜態(tài)最終解釋: 靜態(tài)變量:存儲在類的字節(jié)碼中的變量,被所有對象所共享,不隨著對象的變化而變化,都有相同的值,所以稱為靜態(tài)變量 靜態(tài)方法:只會根據引用所屬的父類,來決定運行的內容,運行內容,不會隨著子類的變化而變化,都是引用所屬的父類的方法實現,所以稱為靜態(tài)方法。超人案例!超人案例!引用類型的向上向下轉型1、向上轉型:多態(tài)的體現 父類的引用指向了子類的對象 以前:子類的引用 = 子類的對象 Cat c = new Cat(); 現在:父類的引用 = 子類的對象 Animal a = new Cat()
4、;double b = 1; 本質:從概念上說,把概念擴大了,但是從功能和數據說,把訪問范圍縮小了2、向下轉型: 本質:把曾經擴大的概念進行恢復;把曾經縮小的訪問范圍恢復 前提:曾經向上轉型過 格式: 子類類型 子類引用名稱 = (子類類型)父類引用名稱;本質: 【恢復】子類類型原本就有的訪問范圍多態(tài)的好處1、提高了代碼的可擴展性2、在方法的形式參數中,使用父類類型的引用,將來在調用方法的時候,傳入的實際參數可以是這個父類的所有子類的對象。3、不在方法的參數列表中,就在普通的方法體中,使用父類的類型指向子類的對象,也能提高代碼的可擴展性。對象的來源非常廣泛,不僅僅是new出來的,(還可能是通過
5、反射獲取的,通過文件讀取的,還可能是網絡傳遞的,在寫代碼的編譯階段,無法知道對象具體的子類類型的)需要使用父類類型的引用,操作不知道的子類類型的對象。榨汁機案例榨汁機案例抽象類1、抽象:抽取像的,相同的相似的內容出來2、抽象方法: 在子類中,對同一個方法,不同的子類有不同的實現,不同子類中的這些方法,就只有方法聲明是相同的,所以把方法名稱抽取到父類中,就是抽象方法。 抽象方法:就是只有方法聲明,沒有方法實現的方法3、定義格式: 1、沒有方法體,只有方法實現,連方法體的大括號都沒有,通過分號結束方法 2、在方法聲明上,需要加一個abstract關鍵字來說明這個方法是抽象方法抽象類1、可以定義抽象
6、方法的類,就是抽象類2、定義格式: abstract class 類名 抽象方法;抽象類的特點抽象類和抽象方法都需要使用abstract關鍵字聲明 abstract class 類名 public abstract 返回值類型 方法名稱() 抽象類和抽象方法的關系: 1、抽象類中,未必有抽象方法 2、抽象方法所在的類,一定是抽象類抽象類不能實例化(創(chuàng)建對象) 抽象類中有抽象方法,如果能創(chuàng)建對象,就會調用沒有意義的方法 只能定義子類,重寫(實現)抽象方法之后,使用子類來創(chuàng)建對象抽象類的子類: 1、如果子類沒有把父類中的所有抽獎方法都重寫,那么這個子類就還是一個抽象類 2、如果子類重寫了父類中所有
7、的抽象方法,那么子類就成了一個普通類,就可以創(chuàng)建對象抽象類能不能實例化?(創(chuàng)建對象抽象類如何創(chuàng)建對象)抽象類中成員的特點1、成員變量的特點: 既可以是變量、也可以是常量 但是不能被抽象2、構造方法的特點: 抽象類中,有構造方法 用于子類創(chuàng)建對象的時候,要訪問父類的構造方法 一個類中是否需要定義構造方法,不是取決于這個類是否可以創(chuàng)建對象,而是取決于該類是否可以定義成員變量3、成員方法的特點: 可以是抽象方法:強制讓子類重寫這個抽象方法 也可以是非抽象方法:用于給子類繼承,提高代碼的復用性程序員類:屬性(姓名、工號、工資、獎金),行為(工作:軟件開發(fā))測試工程師:屬性(姓名、工號、工資),行為(工
8、作:軟件測試)項目經理類:屬性(姓名、工號、工資、獎金),行為(工作:控制進度)員工類練習接口接口的概述廣義:一切定義規(guī)則的都是接口狹義:java中用于定義方法命名的規(guī)則就是接口 Java接口中,全都是方法的聲明,都是抽象方法好處: 一旦將命名規(guī)則定義出來,【方法的調用】和【方法的實現】就分離開了,可以提升開發(fā)效率,降低代碼的耦合性接口的特點1、接口的定義:使用interface關鍵字,編譯也是生成一個【.class】文件 interface 接口名稱 方法聲明的定義;2、接口中,只可以聲明抽象方法(只能定義方法起名字的規(guī)則)3、類可以實現接口:使用implements關鍵字 實現:接口中只有
9、方法名稱的定義,在類中把接口方法的真正完成邏輯寫出來 class 類名稱 implements 接口名稱 對接口中方法的實現;4、接口的實例化:不能直接實例化 定義實現類,實現接口,類創(chuàng)建對象,對象調用方法5、接口的實現類前途: 是一個抽象類,該類沒有實現接口中的所有抽象方法 是一個普通類,該類實現了接口中的所有抽象方法接口中成員的特點1、成員變量: 只能是常量,不能是變量 默認加上public static final 建議手動加上2、構造方法: 沒有構造方法。接口中無法定義成員變量,所以不需要使用構造方法給成員變量初始化賦值。 雖然接口有自己的實現類,但是對于實現類而言,不去訪問接口中的構
10、造方法,而是訪問實現類的父類的構造方法。(父類是親爹、接口是干爹,找親爹的構造方法,而不是干爹的)3、成員方法: 只能是抽象方法,不能是非抽象方法 默認加上public abstract 建議手動加上類與類、類與接口、接口與接口之間的關系2、類與接口: 實現關系,使用implements 可以單實現、也可以多實現、不能多層實現(一旦實現變成了一個類) 多實現的格式: class 實現類類名 implements 接口1, 接口2, 接口3. 重寫所有接口中的所有抽象方法 多實現沒有安全隱患:即使兩個接口中有一樣的方法聲明,但是在類中也只有一個實現 在繼承一個父類的前提下,還可以實現多個接口 格
11、式: class 子類類名 extends 父類類名 implements 接口1, 接口2. /重寫父類和所有接口中的所有抽象方法1、類與類 繼承的關系,使用extends 可以單繼承、不可以多繼承、可以多層繼承接口練習題建立一個工程,該工程中包含如下內容:1.定義一個接口Ishape,該接口中包含兩個抽象方法:周長和面積;2.分別定義兩個類,矩形類:rectangle,三角形類:Triangle。這兩個類都實現接口Ishape,同時各類擁有自己的私有屬性,比如說矩形的屬性長和寬,三角形的屬性三個邊長和高。給每個類添加相應的構造方法,使各私有屬性都能獲得相應的值。3.定義一個測試類TestShape,在該類中定義一個方法,只要調用該方法就能獲得對應類型的周長和面積,然后在該類中進行相關測試。.按如下要求編寫Java程序: (1)定義接口A,里面抽象方法double area()。 (2)定義接口B,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全指南試題及答案
- 共享出行平臺信用體系構建與信用評級機制研究報告
- 農產品溯源2025年智慧農業(yè)與食品安全監(jiān)管融合報告
- 安全實務試題及答案
- 金融衍生品市場2025年創(chuàng)新產品開發(fā)與風險管理體系研究報告
- 直播平臺內容監(jiān)管與自律發(fā)展對直播行業(yè)監(jiān)管的創(chuàng)新報告
- 綠色建筑認證體系在綠色生態(tài)園區(qū)建設的應用與發(fā)展策略報告
- 月子中心醫(yī)護培訓課件
- 中國醫(yī)藥電子課件
- 消毒供應中心管理規(guī)范
- 大國兵器學習通超星期末考試答案章節(jié)答案2024年
- 24秋國家開放大學《馬克思主義基本原理》專題測試參考答案
- 苗木采購施工方案
- 【大單元】1《北京的春節(jié)》第2課時 教學設計
- 教育現象及問題分析
- 2024年新華東師大版七年級上冊數學全冊教案(新版教材)
- 2024年一級健康管理師考前沖刺必會試題庫300題(含詳解)
- 【8歷期末】安徽省合肥市包河區(qū)2022-2023學年八年級下學期期末歷史試題(含解析)
- 八年級歷史下冊核心知識點、難點、重點總結
- (高清版)JTGT D81-2017 公路交通安全設施設計細則
- 新概念馬學智慧樹知到期末考試答案章節(jié)答案2024年內蒙古農業(yè)大學
評論
0/150
提交評論