繼承 計算機(jī)基礎(chǔ)_第1頁
繼承 計算機(jī)基礎(chǔ)_第2頁
繼承 計算機(jī)基礎(chǔ)_第3頁
繼承 計算機(jī)基礎(chǔ)_第4頁
繼承 計算機(jī)基礎(chǔ)_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

繼承

?繼承

?數(shù)據(jù)隱藏

?方法重寫

?super關(guān)鍵字的使用

?訪問修飾符

?包的使用

HandsOn

繼承的優(yōu)點

HandsOn

繼承

Java當(dāng)中,Java的所有類都有是直接或間接地繼承

Object類。被繼承的類稱為父類,繼承而得到的類稱

為子類

?類的繼承是通過在類的定義過程中,用關(guān)鍵字extends

來說明.一次只能繼承一個類,即單重繼承。

?格式:

[修飾符]class類的名字extends父類{}

?子類繼承父類后

>可繼承和訪問父類中公共類型和保護(hù)類型的成員變量或方法

>不能繼承和訪問被聲明為私有類型的成員變量或方法

?子類可以添加屬于自己的新的變量和方法,這叫擴(kuò)展。

?子類可修改父類的變量或重寫父類的方法,這叫重寫。

HandsOn

繼承的實現(xiàn)

1.classEmployee(

2.Stringname;

3.floatsalary=2000f;

4.publicfloatgetSalary(){

5.returnsalary;

6.}

7.}

8.classManagerextendsEmployee{

9.intbouns;

10.publicvoidsetBouns(intb){

11.bouns=b;

12.}

13.publicstaticvoidmain(String[]s){

14.Managerm=newManager();

15.m.setBouns(1000);

16.floatfs=m.getSalary()+m.bouns;

17.System.out.println(fs);

18.}

19.}

HandsOn

繼承過程中的重寫

?當(dāng)子類的成員(數(shù)據(jù)/方法)與父類的同名(參

數(shù)完全一樣)時,子類的會隱藏父類的成員

變量/成員方法,即發(fā)生了重寫。

?重寫規(guī)則:

必須發(fā)生在繼承關(guān)系中

方法名,參數(shù)列表,返回類型完全一樣

重寫方法的訪問性不能比被重寫方法差

重寫方法不能拋出更多或更廣的異常

HandsOn

繼承過程中的數(shù)據(jù)重寫

1.classA{

2.intx=5;當(dāng)在子類中定義了一個

3.)與父類完全一樣的數(shù)據(jù)

4.classBextendsA{成員時,在子類中將隱臧

5.intx=10;

6.intgetX(){這個父類成員,即在子

7.returnx;類中缺省將不能訪問這

8.)個父類成員

9.publicstaticvoidmain(String[]s){

10.Bb=newB();

11.b.getX();//?

12.)

13.}

HandsOn

繼承過程中的方法重寫

1.classA{

2.voidf(){System.out.println(uAf()”);}

3}

4.classBextendsA{

5.voidf(){

6.System.out.println(uBf()”);

7.}

8.publicstaticvoidmain(String[]s){

9.Bb=newB();

io.b.f();〃?

11.}

12.)

HandsOn

super關(guān)鍵字的使用

?解決隱藏與重寫

子類在隱藏父類的成員變量或重寫了父類的方

法以后,有時要訪問被重寫的方法或隱藏的成

員,Java提供super關(guān)鍵字來實現(xiàn)對父類的訪

問,super位置不向定

?顯示調(diào)用父類構(gòu)造方法

super位置必須位于子類構(gòu)造函數(shù)的第一

句的位置

HandsOn

super調(diào)用重寫數(shù)據(jù)

1.classA{

2.intx=5;

3.}

4.classBextendsA{

5.intx=10;

6.intgetX(){

7.returnx+super.x;

8.}

9.publicstaticvoidmain(String[]s){

10.Bb=newB();

11.b.getX();//?

12.)

13.}

HandsOn

super調(diào)用重寫方法

1.classA{

2.voidf(){System.out.println(uAf()”);}

3}

4.classBextendsA{

5.voidf(){

6.super.f();

7.System.out.println(uBf()”);

8.)

9.publicstaticvoidmain(String[]s){

10.Bb=newB();

11.b.f();//?

12.)

13.}

HandsOn

super在子類構(gòu)造函數(shù)中的應(yīng)

a

?子類構(gòu)建對象時,會先調(diào)用父類的構(gòu)造函

數(shù),然后在調(diào)用自身構(gòu)造函數(shù)

?2種情況:

1)父類存在無參構(gòu)造函數(shù)

子類構(gòu)造函數(shù)中super可以省略

2)父類不存在無參構(gòu)造函數(shù)

子類必須手寫構(gòu)造函數(shù),并且必須在

第一句話顯式調(diào)用super(參數(shù)列表)

HandsOn

訪問修飾符

?類

>public可以跨包使用

A缺省只允許在包中使用

?成員

>public

>protected

>缺省

>private

HandsOn

成員訪問修飾符3-2

HandsOn

?包是類庫的組成單元,Java的類庫是由各種各樣功能包組成的.

>Java安裝目錄jre\lib\rtjar就是java的類庫

?類和接口是包的組成元素,編程人員可以把一組類和接口通過

package關(guān)鍵字封裝在一個包中。從而實現(xiàn)了Java的命名空間。

?聲明包

>在源文件的開始加上:package包名(要求全部小寫)(反域名制)

>在編譯時,加-d參數(shù),指明包放的位置

?使用包中的類

>如使用不同包的類,必須加入import關(guān)鍵字

>引用的包必須在classpath環(huán)境變量中,如果不在,運行時要用-

classpath參數(shù)單獨指定.

HandsOn

打包及編譯■示例

1.packageedu.dhcc.j2se.parti0;

2.publicclassTest{

3.privateintm;

4.intn;

5.protectedintx;

6.publicinty;

7.}

javac-d編譯后當(dāng)前類所在根包存放的路徑Test.java

HandsOn

使用包的類一示例

1.packageedu.dhcc.test;

2.importedu.dhcc.j2se.partiO.Test;

3.classUseTestlextendsTest{

4.UseTestl(){

5.y=30;

6.x=40;

7.〃m,n為什么在這里不能訪問

8.)

9.}

10.publicclassUseTest{

11.publicstaticvoidmain(String[]s){

12.Testt=newTest();

13.t.y=30;

14.為什么在這里不能訪問

15.}

16.}

HandsOn

編譯及運行

?javac-d編譯后包存放路徑UseTestjava

>要求源文件中使用的包必須在classpath環(huán)境

變量中才可編譯通過

?javaedu.dhcc.testUseTest

>要求運行的當(dāng)前類及所使用類都在

classpath環(huán)境變量中才可運行通過

HandsOn

作業(yè)

在員工管理系統(tǒng)中,有普通員工,經(jīng)理,董事三種角色,

公司所有的員工都有員工Id,員工名字,員工基本薪水

(2000),請假天數(shù);現(xiàn)初步定Employee類為父類,

Manager子類、Director(董事)子葵,它們的區(qū)別是

計算工資方式一樣。

具體工資計算辦法:

?A、工資扣除部

溫馨提示

  • 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

提交評論