版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第三章(8-10天)面向?qū)ο螅ㄏ拢﹦⒄L(fēng)Java基礎(chǔ)--教程面向?qū)ο螅ㄏ拢┟嫦驅(qū)ο?下)繼承繼承概述繼承特點函數(shù)覆蓋繼承小結(jié)final關(guān)鍵字多態(tài)多態(tài)概述多態(tài)特點抽象類接口內(nèi)部類包繼承——概述定義:多個類中存在相同屬性和行為時,將這些內(nèi)容抽取到單獨一個類中,那么多個類無需再定義這些屬性和行為,只要繼承那個類即可。這多個類稱為子類,單獨這個類稱為父類或者超類。子類可以直接訪問父類中非私有的成員變量與成員方法。格式:通過extends關(guān)鍵字讓類與類之間產(chǎn)生繼承關(guān)系class
SubDemo
extends
Demo{}優(yōu)點:繼承的出現(xiàn)提高了代碼的復(fù)用性。繼承的出現(xiàn)讓類與類之間產(chǎn)生了關(guān)系,是多態(tài)的前提之一。弊端:使類與類之間產(chǎn)生了更強的耦合性特點:java只支持單繼承不支持多繼承。java支持多層繼承。任何類都直接或者間接繼承自O(shè)bject類。注意事項:不要為了某個功能而去繼承,需要滿足”is
a”的關(guān)系。繼承——特點super關(guān)鍵字:代表父類的內(nèi)存空間。使用super區(qū)分子父類所屬。用法與this類似子類的構(gòu)造方法中均有默認(rèn)的super()成員變量:訪問滿足就近原則局部變量>成員變量>父類成員變量>父類的父類成員方法:子類可以直接使用父類的非私有方法。當(dāng)子父類方法一樣時,方法重寫。構(gòu)造方法:構(gòu)造方法不繼承,子類的構(gòu)造默認(rèn)調(diào)用父類構(gòu)造。父類構(gòu)造方法負(fù)責(zé)對成員變量初始化供子類對象使用,而不是創(chuàng)建父類對象。父類沒有無參構(gòu)造時,子類需要手動調(diào)用其他父類構(gòu)造。繼承——成員特點繼承——方法重寫定義:子類中出現(xiàn)與父類一模一樣的方法時,出現(xiàn)方法重寫子類方法訪問權(quán)限需要大于等于父類方法訪問權(quán)限靜態(tài)只能覆蓋靜態(tài)返回值類型:基本類型/void:必須相同引用類型:子類返回值類型必須為父類返回值類型的子類函數(shù)名相同參數(shù)列表相同應(yīng)用:子類需要父類功能,但又在功能上又有多增加時,可以復(fù)寫父類方法。子類比父類更強大。注意事項:父類中私有方法不可以被覆蓋。在子類中想調(diào)用父類自己的方法可以使用super關(guān)鍵字父類構(gòu)造方法初始化子類默認(rèn)初始化子類顯式初始化子類構(gòu)造代碼塊初始化子類構(gòu)造方法初始化子類構(gòu)造調(diào)用父類構(gòu)造調(diào)用父類默認(rèn)初始化父類顯示初始化父類構(gòu)造代碼塊初始化繼承小結(jié)子父類實例化過程子類中所有的構(gòu)造函數(shù)默認(rèn)都會訪問父類中空參數(shù)的構(gòu)造函數(shù),原因是構(gòu)造方法中第一行默認(rèn)的super()子類具備父類中的數(shù)據(jù),所以需要先明確父類是如何初始化的,即調(diào)用父類的構(gòu)造方法。父類存儲空間優(yōu)于子類對象。大致順序:繼承練習(xí)設(shè)計:人、餐廳員工、餐廳經(jīng)理、廚師4個類。強制要求:本關(guān)系中存在兩層繼承關(guān)系對于人類必須有吃飯、睡覺的方法,以及姓名,年齡的屬性
對于員工必須有薪資屬性與上班的方法,要求上班的方法內(nèi)有System.out.println(“上班打卡”)。對于餐廳經(jīng)理與廚師除了上班打卡外,分別均有自己的上班方式:如經(jīng)理上班的內(nèi)容還包括處理客戶矛盾等,廚師上班的內(nèi)容還包括炒菜。(要求使用方法重寫)final關(guān)鍵字定義:最終修飾符,修飾類與類的成員。作用:修飾類,類不可以被繼承。修飾方法,方法不可以被重寫。修飾變量,變量的值不能更改,成為了常量。常量必須有值。常量的值只能賦值一次。引用類型常量可以更改其堆內(nèi)存對象中的值。內(nèi)部類只能訪問被外部類中被final修飾的局部變量。多態(tài)——鋪墊習(xí)題設(shè)計以下方法:返回值為基本類型,無參數(shù)的方法返回值為引用數(shù)據(jù)類型,無參數(shù)的方法返回值為引用數(shù)據(jù)類型,無參數(shù)的方法,使用匿名對象無返回值,參數(shù)為基本數(shù)據(jù)類型的方法無返回值,參數(shù)為引用數(shù)據(jù)類型的方法無返回值,參數(shù)為引用數(shù)據(jù)類型的方法,使用匿名對象返回值為基本數(shù)據(jù)類型,參數(shù)為基本數(shù)據(jù)類型的方法返回值為引用數(shù)據(jù)類型,參數(shù)為引用數(shù)據(jù)類型的方法返回值為引用數(shù)據(jù)類型,參數(shù)為引用數(shù)據(jù)類型的方法,使用匿名對象多態(tài)——概述定義:某一種事物的多種形態(tài)。例:貓類繼承動物類。則貓具有兩種形態(tài),即動物與貓。式子A定義變量普通賦值:貓a=new貓();式子B定義變量多態(tài)賦值:動物b=new貓();分析以上案例,在式子B中,父類的引用指向了子類實例對象。多態(tài)的程序體現(xiàn)為父類或者接口的引用指向其子類對象或者實現(xiàn)類對象。多態(tài)——概述前提:需要存在繼承或者實現(xiàn)關(guān)系。要有方法覆蓋操作,否則沒有意義。父類或者接口的引用指向或者接收自己的子類對象。優(yōu)點:開發(fā)當(dāng)中要符合開閉原則:對修改關(guān)閉,對擴展開放。多態(tài)的存在提高了程序的擴展性和后期可維護性。多態(tài)——特點成員函數(shù):編譯時:要查看引用變量所屬的類中是否有所調(diào)用的成員函數(shù)。在運行時:要子類實例中的方法。成員變量:只看引用變量所屬的類。向上向下轉(zhuǎn)型:向上轉(zhuǎn)型:引用變量為父類時,子類實例對象可以自動提升為父類類型向下轉(zhuǎn)型:可以使用強制類型轉(zhuǎn)換,完成向下轉(zhuǎn)型多態(tài)的表現(xiàn)形式具體類多態(tài)(少見)抽象類多態(tài)(常見)接口多態(tài)(常見)多態(tài)——抽象類抽象定義:抽象就是從多個事物中將共性的,本質(zhì)的內(nèi)容抽取出來。例如:狼和狗共性都是犬科,犬科就是抽象出來的概念。抽象類定義:包含抽象方法的類就是抽象類。抽象類不一定包含抽象方法。類/抽象類不一定包含方法。抽象類可以有非抽象方法。抽象方法定義:多個對象都具備相同的功能,但是功能具體內(nèi)容有所不同,那么在抽取過程中,只抽取了功能定義,并未抽取功能主體,那么只有功能聲明,沒有功能主體的方法稱為抽象方法。例如:狼和狗都有吼叫的方法,可是吼叫內(nèi)容是不一樣的。所以抽象出來的犬科雖然有吼叫功能,但是并不明確吼叫的細(xì)節(jié)。多態(tài)——抽象類格式:抽象類與抽象方法均需要使用abstract關(guān)鍵字。抽象方法格式:函數(shù)名(參數(shù)列表);修飾符abstract返回值類型抽象類格式:修飾符abstract
class類名{}特點:抽象類本身無法實例化。抽象類通過多態(tài)的形式創(chuàng)建其子類實例對象。子類需要將抽象父類的抽象方法均覆蓋才可以實例化,否則依然是抽象類。抽象類強制子類必須實現(xiàn)抽象方法。多態(tài)——抽象類定義練習(xí)老師示例具體事物:基礎(chǔ)班老師,就業(yè)班老師共性:姓名,年齡,講課。學(xué)員示例具體事務(wù):基本班學(xué)員,就業(yè)班學(xué)員共性:姓名,學(xué)號,學(xué)習(xí)雇員示例需求:公司中程序員有姓名,工號,薪水,工作內(nèi)容。項目經(jīng)理除了有姓名,工號,薪水,還有獎金,工作內(nèi)容。多態(tài)——抽象類注意事項抽象類包含構(gòu)造方法,用來給屬性賦值供子類實例對象使用。abstract不能與如下關(guān)鍵字公用final:抽象類需要繼承,final修飾的無法繼承static:抽象類抽象方法無方法體,調(diào)用無意義private:抽象類的方法需要被覆蓋,如果private修飾的話,子類無法訪問多態(tài)——接口概念:比抽象類更為抽象的表現(xiàn)形式格式:定義接口:interface
XX{}使用接口:class
YY
implements
XX{}特點接口是對外暴露的規(guī)則。接口是程序的功能擴展。接口的出現(xiàn)降低耦合性。java支持類同時實現(xiàn)多個接口。java支持類在繼承一個類的同時,實現(xiàn)多個接口。接口與接口之間可以有繼承關(guān)系。并且可以多繼承。接口不能被實例化。接口是”like
a”的關(guān)系。多態(tài)——接口接口成員特點:接口內(nèi)的成員修飾符是固定的成員常量:public
static
final,接口中只有常量成員函數(shù):public
abstract,接口中只有抽象方法構(gòu)造方法:無多態(tài)——接口注意事項抽象類包含構(gòu)造方法,用來給屬性賦值供子類實例對象使用。abstract不能與如下關(guān)鍵字公用:final:抽象類需要繼承,final修飾的無法繼承。static:抽象類抽象方法無方法體,調(diào)用無意義。private:抽象類的方法需要被覆蓋,如果private修飾的話,子類無法訪問。接口與抽象類的異同均為抽取出的相同概念的抽象。類為單繼承,接口為多實現(xiàn)。繼承為”is
a”的關(guān)系,接口為“l(fā)ike
a”的關(guān)系。抽象類中可以定義非抽象方法,共子類直接使用。接口均為抽象方法,因為固定修飾符。多態(tài)——接口設(shè)計練習(xí)練習(xí):根據(jù)需求設(shè)計類與接口乒乓球運動員和教練籃球運動員和教練與乒乓球有關(guān)的人員出國考察,要學(xué)習(xí)英語練習(xí):定義一個類,要求基本數(shù)據(jù)類型作為成員變量類型。定義一個類,要求引用數(shù)據(jù)類型作為成員變量類型。類型為數(shù)組
類型為具體類類型為抽象類類型為接口包概念:包是用來分類管理類文件的。包相當(dāng)于文件夾,類相當(dāng)于文件。是封裝的一種表現(xiàn)形式。作用:為類分類。提供多層命名空間。類名的全限定名是包括其所屬包的。包包的定義:定義包時寫在程序文件的第一行。通常使用公司的域名反寫。格式:package一級包名.二級包名…;帶包的編譯:直接編譯,手動創(chuàng)建文件夾。使用帶參數(shù)的命令進(jìn)行編譯。-
javac
–d.XX.java后加入包名運行即可帶包的運行:運行全限定名類。包同包訪問:直接訪問跨包訪問使用全限定名。除lang包外,其他包下類的使用均可導(dǎo)包后直接使用。同一文件中可以導(dǎo)入多個包。import關(guān)鍵字用來導(dǎo)包。格式:import mypack.Demo;/
import
mypack.*;被導(dǎo)入的類需要使用public修飾。通常一個文件中只定義一個類,而這個類就是使用
public修飾的。如果一個文件中定義多個類,則只有一個類可以使用
public修飾,且這個類的類名需要與文件名相同。包——訪問權(quán)限publicprotecteddefaultprivate同一類中√√√√同一包中
(子類與無關(guān)類)√√√不同包的子類√√不同包中的無關(guān)類√包——練習(xí)題練習(xí)一:分別完成同包下與跨包下的類訪問。練習(xí)二:在一個類中package,import,class的出現(xiàn)順序是什么,可以有多個么?練習(xí)三:完成四種訪問權(quán)限的案例。內(nèi)部類概念:內(nèi)部類又叫內(nèi)置類或者嵌套類。即在類中定義的另外一個類。是一個相對概念。內(nèi)部類是符合面向?qū)ο蟮?。如人與心臟的關(guān)系。內(nèi)部類在編譯時,讓會生成兩個class文件。訪問特點:內(nèi)部類可以直接訪問外部類中的成員,包括私有成員。而外部類要訪問內(nèi)部類中的成員必須要建立內(nèi)部類的對象。分類:成員內(nèi)部類局部內(nèi)部類,匿名內(nèi)部類屬于局部內(nèi)部類內(nèi)部類成員內(nèi)部類:內(nèi)部類定義在成員位置。訪問格式:Outer.Inner
x
=
new
Outer().new
Inner();或外部類中方法中,直接創(chuàng)建內(nèi)部類對象調(diào)用其方法。可以被private成員修飾符修飾,保證數(shù)據(jù)安全。可以被static成員修飾符修飾,方便調(diào)用。被static修飾的內(nèi)部類只能訪問外部類中的靜態(tài)成員。static修飾后的訪問格式:Outer.Inner x
=
new
Outer.Inner();調(diào)用靜態(tài)內(nèi)部類中的靜態(tài)方法:Outer.Inner.method();內(nèi)部類局部內(nèi)部類:內(nèi)部類定義在方法內(nèi)。無法使用Outer.Inner進(jìn)行訪問。訪問格式:在所在方法內(nèi)創(chuàng)建對象進(jìn)行方法調(diào)用同時可以訪問所在局部中的局部變量,但必須是被final修飾的。必須先定義再使用。內(nèi)部類匿名內(nèi)部類概念:在通過簡寫形式定義一個沒有類名的類。在創(chuàng)建一個對象。匿名內(nèi)部類即將匿名定義類與創(chuàng)建對象的動作一起完成。匿名內(nèi)部類屬于局部內(nèi)部類。定義格式:匿名內(nèi)部類需要先定義再使用。匿名內(nèi)部類是一種多態(tài)的表現(xiàn)形式。new類名或者接口名(){覆蓋類或者接口中的代碼,(也可以自定義內(nèi)容。)};使用場景:1、內(nèi)部類效率更高。2、通常在使用接口類型參數(shù)的方法上,并該接口中的方法不超過三個時,可以將匿名內(nèi)部類作為參數(shù)傳遞。3、增強閱讀性。內(nèi)部類——練習(xí)題練習(xí)一:完成一個成員內(nèi)部類的定義及使用,要求分別使用
private與static關(guān)鍵字修飾。練習(xí)二:完成一個局部內(nèi)部類的定義并使用。練習(xí)三:分別完成類型為抽象類與接口類型的匿名內(nèi)部類作為參數(shù)或者返回值。練習(xí)四:
a)interfac
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度股份代持與代管合同協(xié)議2篇
- 二零二五年度水利工程監(jiān)測與施工測量服務(wù)合同范本3篇
- 二零二五版新能源設(shè)備搬運安裝合同細(xì)則3篇
- 2025年度航空航天器發(fā)動機安裝與測試合同3篇
- 二零二五年度綠色交通設(shè)施招標(biāo)投標(biāo)合同6篇
- 展會參展資格合同(2篇)
- 二零二五版水利工程鋼筋加工與分包合同規(guī)范范本3篇
- 二零二五版室內(nèi)外景觀裝飾一體化合同3篇
- 2025年度文化演出活動承辦合同3篇
- 二零二五版單位職工食堂員工健康體檢承包合同2篇
- 中建集團面試自我介紹
- 《工業(yè)園區(qū)節(jié)水管理規(guī)范》
- 警校生職業(yè)生涯規(guī)劃
- 意識障礙患者的護理診斷及措施
- 2024版《53天天練單元歸類復(fù)習(xí)》3年級語文下冊(統(tǒng)編RJ)附參考答案
- 2025企業(yè)年會盛典
- 215kWh工商業(yè)液冷儲能電池一體柜用戶手冊
- 場地平整施工組織設(shè)計-(3)模板
- 交通設(shè)施設(shè)備供貨及技術(shù)支持方案
- 美容美發(fā)店火災(zāi)應(yīng)急預(yù)案
- 餐車移動食材配送方案
評論
0/150
提交評論