




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第六課:承繼第六課:承繼周甫 zoofchowhotmail學(xué)習(xí)目的學(xué)習(xí)目的 單重承繼在單重承繼在java中的實現(xiàn)中的實現(xiàn) 1 protected與與(默許默許)訪問控制符訪問控制符2 overloading、overriding 3 構(gòu)造方法在承繼中的運用構(gòu)造方法在承繼中的運用 4學(xué)習(xí)目的學(xué)習(xí)目的 Object類、包裝類類、包裝類 5 基于承繼的多態(tài)實現(xiàn)基于承繼的多態(tài)實現(xiàn) 61 單承繼單承繼 vjava中一個類只能承繼于另一個類。我們將被承繼的類稱之為父類(基類),承繼類稱之為子類(派生類)。在java中用關(guān)鍵字extends來實現(xiàn)單承繼,語法如下:vclass subclass exten
2、ds superclass.v實現(xiàn)承繼關(guān)系的類之間有著必然的聯(lián)絡(luò),不能將不相關(guān)的類實現(xiàn)承繼.v 比如:人類不能承繼自鳥類 例如例如v下面,假設(shè)我們開發(fā)某公司的員工管理系統(tǒng),知類Manager和類Employee,代碼如下:vclass Employeevvpublic String f_name;vpublic String l_name;vpublic float salary = 0.0f;vpublic String getEmpDetails()v.v例如續(xù)一例如續(xù)一class Managerpublic String f_name;public String l_name;publi
3、c float salary;public String dept;public String getEmpDetails().例如續(xù)二例如續(xù)二v經(jīng)過分析得知,在類Employee和類Manager中存在許多共同的屬性和行為,在現(xiàn)實生活中,Manager是公司Employee之一,因此,我們可以將Manager類定義成Employee類的子類,修正類Manager如下:vclass Manager extends Employeevvpublic String dept;vpublic String getEmpDetails()vvreturn This is Manager!;vv例如續(xù)三
4、例如續(xù)三vUML中類圖表示為:承繼帶來的一些益處承繼帶來的一些益處v減少代碼冗余減少代碼冗余v從上面的例子就可以看出,類從上面的例子就可以看出,類Manager經(jīng)過經(jīng)過承繼而無需再定義屬性承繼而無需再定義屬性(f_name,l_name,salary),從而減少了代碼量從而減少了代碼量. v維護變得簡單維護變得簡單v假設(shè)公司要求給一切員工添加生日這一屬性,那假設(shè)公司要求給一切員工添加生日這一屬性,那么,在么,在v沒有承繼時,我們的維護將變得困難沒有承繼時,我們的維護將變得困難(需修正每一需修正每一個級別個級別v的員工類的員工類)。 v擴展變得容易擴展變得容易v當(dāng)一個新的級別員工類需創(chuàng)建時,我們
5、只需當(dāng)一個新的級別員工類需創(chuàng)建時,我們只需將該類承繼一切員工父類將該類承繼一切員工父類Employee,接著再定,接著再定義屬于該員工的特有屬性即可。義屬于該員工的特有屬性即可。 課堂練習(xí)課堂練習(xí)v練習(xí)1 編寫Cat和Dog類,要求每個類不少于5個屬性及行為(setXXX/getXXX不在其列)v練習(xí)2 察看Cat和Dog類,編寫一個新的類:Animal,描畫Cat和Dog共同一切的屬性和行為(各不少于3個).v練習(xí)3 實現(xiàn)Cat與Dog對Animal的承繼v練習(xí)4 在Cat和Dog類里新添加一個屬性:vowner(主人)并打印出來;只在Animal里添加一個屬性:owner,并打印出來,試比
6、較,哪個更方便?小測試小測試v判別以下代碼判別能否正確:v片斷一:vclass B.vclass C.vclass A extends B,Cv.v片斷二:vclass Avclass B extends Avclass C extends A2 訪問控制訪問控制v在java中是經(jīng)過各種訪問區(qū)分符來實現(xiàn)數(shù)據(jù)封裝的,共分為四種訪問級別(由高到低):private(私有)、friendly(缺省)、protected(受維護)、public(公共)。v留意:以上四種訪問修飾符可以作用于任何變量和方法,類只可以定義為私有或公共級別(嵌套類除外)。2 訪問控制訪問控制(續(xù)一續(xù)一)v訪問性規(guī)范訪問性規(guī)范
7、v修飾符修飾符 同類同類 同包同包 子類子類 通用性通用性 v -v public 是是 是是 是是 是是v protected是是 是是 是是v (friendly) 是是 是是v private 是是 2 訪問控制訪問控制3 方法重載方法重載(mehod overloading) v成員方法重載v對于java編譯器來說,它只根據(jù)方法的稱號、參數(shù)的不同來判別兩個方法能否一樣,假設(shè)出現(xiàn)兩個稱號一樣、參數(shù)也完全一致的方法,那么編譯器就以為這兩個方法是完全一樣的,也就是說方法被反復(fù)定義! v比如,以下代碼片斷都是正確的:v片斷一:vvoid method1().vvoid method2().v片
8、斷二:vvoid method1().vvoid method1(int a)3 方法重載方法重載(續(xù)一續(xù)一v思索:為什么要用方法重載?v*v當(dāng)一個類中的多個同名方法滿足以下條件時之一時,即實現(xiàn)了方法重載:va.不同的參數(shù)個數(shù)vb.不同的參數(shù)類型vc.不同的參數(shù)順序小測試小測試 v以下哪幾組方法實現(xiàn)了重載,滿足了重載的那一個條件? v組一:vvoid m1(int x)vvoid m1(int x, int y)vv組二:vvoid m1(int x, String str)vvoid m1(String str, int x)vv組三:vvoid m1(int x, int y)vvoid
9、m1(int y, int x)vv組四:vvoid m1(int x)vint m1(int x)vv組五:vvoid m1(int x)vvoid m2(int x)3 方法重載方法重載(續(xù)二續(xù)二v 構(gòu)造方法重載v假設(shè)有一個類帶有幾個構(gòu)造函數(shù),那么也許會想復(fù)制其中一個構(gòu)造函數(shù)的某些功能到另一個構(gòu)造函數(shù)中??梢越?jīng)過運用關(guān)鍵字this作為一個方法調(diào)用來到達這個目的。v public class Employee vprivate String name;vprivate int salary;vpublic Employee(String n, int s) vname = n;vsalary
10、 = s;vvpublic Employee(String n) vthis(n, 0);vv 注:對于this的任何調(diào)用,假設(shè)出現(xiàn),在任何構(gòu)造函數(shù)中必需是第一個語句.4 方法覆蓋方法覆蓋(method overriding)v覆蓋是基于承繼的,沒有承繼就沒有覆蓋。v在java中,覆蓋的實現(xiàn)是在子類中對從父類中承繼過來的非私有方法的內(nèi)容進展修正的一個動作(留意:不能違反訪問級別的限制)。 5 基于承繼的多態(tài)實現(xiàn)基于承繼的多態(tài)實現(xiàn)v多態(tài):一個名字可以表示許多不同類(這些不同類必需擁有一個共同的超類)的對象,從而實現(xiàn)以不同的方式來呼應(yīng)某個共同的操作集。 v父類變量可以援用子類對象!這在java是允
11、許的,即Employee e = new Manager()是合法的,但是請留意,變量e只能調(diào)用共同的成員屬性與方法,即e只能訪問子類從父類中承繼過來的成員或者覆蓋父類的方法!v*6 隱藏隱藏(hiding)v父類的私有方法對于子類來說是不可見的,留意,不可見!=沒有,子類仍舊承繼了父類一切的成員,那么這些私有的父類成員去哪了?v實踐上,它們都被隱藏,對子類來說,這些父類的私有成員都被隱藏了起來,從而導(dǎo)致子類中的不可見。7 構(gòu)造方法在承繼中的運用構(gòu)造方法在承繼中的運用 v在承繼中,父類和子類的構(gòu)造方法的調(diào)用次序如下:先調(diào)用父類構(gòu)函再調(diào)用子類構(gòu)函. *v構(gòu)造方法不能被承繼,因此,在子類中調(diào)用父類
12、構(gòu)造方法只能經(jīng)過super關(guān)鍵字來實現(xiàn)。super可以了解為父類在子類中的一個對象,我們可以象運用父類對象一樣運用子類對象。v留意:父類構(gòu)函只能在子類構(gòu)函中經(jīng)過super顯示調(diào)用,并且必需是第一句! 8 包裝類包裝類v 對于每一個java根本數(shù)據(jù)類型,java都提供了對應(yīng)的包裝類。v 在java中,包裝類主要是用于將根本數(shù)據(jù)類型與對象之間進展結(jié)合。 v 根本數(shù)據(jù)類型 包裝類v -v boolean Booleanv byte Bytev char Charectorv short Shortv int Integerv long Longv float Floatv double Double
13、v *9 Instanceof 運算符運算符v 我們可以經(jīng)過異類搜集將一些不同對象搜集到它們的父類中。有時他能夠想知道某個對象究竟屬于哪個類。這就是instanceof運算符的目的。假設(shè)類層次按照以下方法被擴展:vpublic class Animal extends Objectvpublic class Cat extends Animalvpublic class Dog extends Animalv假設(shè)他經(jīng)過Animal類型的援用接受一個對象,它能否可以變換成Cat或Dog,可以象這樣用instanceof 來測試:v public void method(Animal a) v i
14、f (a instanceof Cat) v /可以捉老鼠v else if (a instanceof Dog) v / 可以咬v else v /普通的操作v v 10 = 與與 equals()v在java中,=與equals()都是用來比較援用,只是=即可以比較根本類型,也可以比較對象,而equals()那么只能在對象之間進展援用比較。v先來了解一下=運算符,分析一下語句執(zhí)行結(jié)果:vint num1 = 10;vint num2 = 10;vSystem.out.println(num1 = num2); /打印truevString str1 = new String(123);vS
15、tring str2 = new String(123);vSystem.out.println(str1 = str2); /打印false11 toString( )方法方法vtoString方法被用來將一個對象轉(zhuǎn)換成String表達式。當(dāng)自動字符串轉(zhuǎn)換發(fā)生時,它被用作編譯程序的參照。v例如:vDate now = new Date()vSystem.out.println(now)v將被翻譯成:vSystem.out.println(now.toString(); 獨立實際獨立實際 v實際 寫出一個公司里面員工發(fā)工資的簡單系統(tǒng):要求有總經(jīng)理,經(jīng)理,員工對象。有根本工資和獎金操作,最后打印
16、出總經(jīng)理,經(jīng)理,員工的工資。WlTiQeNbK8G5D1A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&
17、t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQe
18、MbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%WkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$
19、qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNc
20、K8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v
21、&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A+x*u$qVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL
22、9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&
23、t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&tXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMa
24、I7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u
25、$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8
26、G4D1A-w*t!qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r
27、#oWlTiQeNbJ8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H
28、5E2A+x(u$rZnWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7Fy(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLa
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度新股東入資生物制藥產(chǎn)業(yè)合作協(xié)議
- 2025年度電子商務(wù)平臺員工勞務(wù)外包及運營合同
- 二零二五年度長租公寓退租服務(wù)保障協(xié)議
- 二零二五年度餐飲連鎖生意合作合同范本
- 房產(chǎn)證抵押貸款合同抵押物管理協(xié)議(2025年度)
- 二零二五年度精裝高層購房定金合同
- 2025年度私人宅基地買賣轉(zhuǎn)讓協(xié)議書及配套設(shè)施建設(shè)補充協(xié)議
- 2025年度租房押金監(jiān)管及退還標準合同
- 二零二五年度文化產(chǎn)業(yè)投資入股協(xié)議
- 2025年黑龍江貨運從業(yè)資格證的試題
- 固體物理21固體的結(jié)合課件
- 幼兒園中班居家安全教案
- 水平定向鉆施工規(guī)范方案
- 2022年東北大學(xué)現(xiàn)代控制理論試題及答案
- 教學(xué)樓畢業(yè)設(shè)計資料
- 國網(wǎng)直流電源系統(tǒng)技術(shù)監(jiān)督規(guī)定
- 香港雇傭合同協(xié)議書
- 建筑工程材料見證取樣及送檢培訓(xùn)講義(PPT)
- 部編版四年級語文下冊第二單元《習(xí)作:我的奇思妙想》課件PPT
- PS零基礎(chǔ)入門學(xué)習(xí)教程(適合純小白)PPT課件
- XX輸變電工程公司作業(yè)風(fēng)險評估數(shù)據(jù)庫(精品模板)
評論
0/150
提交評論