清華大學(xué)javappt第5章_第1頁
清華大學(xué)javappt第5章_第2頁
清華大學(xué)javappt第5章_第3頁
清華大學(xué)javappt第5章_第4頁
清華大學(xué)javappt第5章_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第5章章 接口與多態(tài)接口與多態(tài)鄭莉鄭莉programming in java清華大學(xué) 鄭莉java語言程序設(shè)計2目錄目錄l5.1 接口接口l5.2 塑型塑型l5.3 多態(tài)的概念多態(tài)的概念l5.4 多態(tài)的應(yīng)用多態(tài)的應(yīng)用l5.5 構(gòu)造方法與多態(tài)構(gòu)造方法與多態(tài)l5.6 內(nèi)部類內(nèi)部類l5.7 本章小結(jié)本章小結(jié)清華大學(xué) 鄭莉java語言程序設(shè)計35.1 接口接口l接口接口 與抽象類一樣都是定義多個類的共同屬性 使抽象的概念更深入了一層,是一個“純”抽象類,它只提供一種形式,并不提供實現(xiàn) 允許創(chuàng)建者規(guī)定方法的基本形式:方法名、參數(shù)列表以及返回類型,但不規(guī)定方法主體 也可以包含基本數(shù)據(jù)類型的數(shù)據(jù)成員,但它

2、們都默認(rèn)為static和final清華大學(xué) 鄭莉java語言程序設(shè)計45.1.1 接口的作用及語法接口的作用及語法l接口的作用接口的作用 是面向?qū)ο蟮囊粋€重要機(jī)制 實現(xiàn)多繼承,同時免除c+中的多繼承那樣的復(fù)雜性 建立類和類之間的“協(xié)議”l把類根據(jù)其實現(xiàn)的功能來分別代表,而不必顧慮它所在的類繼承層次;這樣可以最大限度地利用動態(tài)綁定,隱藏實現(xiàn)細(xì)節(jié)l實現(xiàn)不同類之間的常量共享接口清華大學(xué) 鄭莉java語言程序設(shè)計5l接口允許我們在看起來不相干的對象接口允許我們在看起來不相干的對象之間定義共同行為之間定義共同行為5.1.1 接口的作用及語法接口的作用及語法與抽象類的不同與抽象類的不同接口清華大學(xué) 鄭莉j

3、ava語言程序設(shè)計6l保險公司的例子保險公司的例子 具有車輛保險、人員保險、公司保險等多種保險業(yè)務(wù),在對外提供服務(wù)方面具有相似性,如都需要計算保險費(premium)等,因此可聲明一個insurable 接口 在uml圖中,實現(xiàn)接口用帶有空三角形的虛線表示5.1.1 接口的作用及語法接口的作用及語法例例5_1insurablecompanypersoncar接口清華大學(xué) 鄭莉java語言程序設(shè)計7l接口的語法接口的語法 聲明格式為接口修飾符 interface 接口名稱 extends 父接口名/方法的原型聲明或靜態(tài)常量 接口的數(shù)據(jù)成員一定要賦初值,且此值將不能再更改,允許省略final關(guān)鍵字

4、 接口中的方法必須是“抽象方法”,不能有方法體,允許省略public及abstract關(guān)鍵字5.1.1 接口的作用及語法接口的作用及語法接口清華大學(xué) 鄭莉java語言程序設(shè)計8l例例5.1中的中的insurable 接口聲明如下,接口聲明如下,可見其中的方法都是抽象方法可見其中的方法都是抽象方法 public interface insurable public int getnumber(); public int getcoverageamount(); public double calculatepremium(); public date getexpirydate(); 5.1.1

5、 接口的作用及語法接口的作用及語法 例例5_1保險接口的聲明保險接口的聲明接口清華大學(xué) 鄭莉java語言程序設(shè)計9l聲明一個接口聲明一個接口shape2d,可利用它來實現(xiàn)可利用它來實現(xiàn)二維的幾何形狀類二維的幾何形狀類circle和和rectangle 把計算面積的方法聲明在接口里 pi值是常量,把它聲明在接口的數(shù)據(jù)成員里interface shape2d /聲明shape2d接口 final double pi=3.14; /數(shù)據(jù)成員一定要初始化 public abstract double area();/抽象方法 在接口的聲明中,允許省略一些關(guān)鍵字,也可聲明如下interface shap

6、e2d double pi=3.14; double area(); 5.1.1 接口的作用及語法接口的作用及語法例例5_2接口清華大學(xué) 鄭莉java語言程序設(shè)計105.1.2 實現(xiàn)接口實現(xiàn)接口l接口的實現(xiàn)接口的實現(xiàn)接口不能用new運(yùn)算符直接產(chǎn)生對象,必須利用其特性設(shè)計新的類,再用新類來創(chuàng)建對象利用接口設(shè)計類的過程,稱為接口的實現(xiàn),使用implements關(guān)鍵字語法如下public class 類名稱 implements 接口名稱 /* bodies for the interface methods */ /* own data and methods. */ l必須實現(xiàn)接口中的所有方法l

7、來自接口的方法必須聲明成public接口清華大學(xué) 鄭莉java語言程序設(shè)計11l實現(xiàn)接口實現(xiàn)接口insurable,聲明汽車類實現(xiàn)例聲明汽車類實現(xiàn)例5.1中的中的insurable接口,實現(xiàn)接口中的所有抽象方法接口,實現(xiàn)接口中的所有抽象方法public class car implements insurable public int getpolicynumber() / write code here public double calculatepremium() / write code here public date getexpirydate() / write code her

8、e public int getcoverageamount() / write code here public int getmileage() /新添加的方法 /write code here 5.1.2 實現(xiàn)接口實現(xiàn)接口 例例5_3接口清華大學(xué) 鄭莉java語言程序設(shè)計12l對象可以被轉(zhuǎn)型為其所屬類實現(xiàn)的接口類型對象可以被轉(zhuǎn)型為其所屬類實現(xiàn)的接口類型 getpolicynumber、calculatepremium是insurable接口中聲明的方法 getmileage是car類新添加的方法,insurable接口中沒有聲明此方法car jetta = new car(); insu

9、rable item = (insurable)jetta; /對象轉(zhuǎn)型為接口類型 item.getpolicynumber();item.calculatepremium(); item.getmileage(); / 接口中沒有聲明此方法,不可以jetta.getmileage(); / 類中有此方法,可以(car)item).getmileage(); / 轉(zhuǎn)型回原類,可調(diào)用此方法了5.1.2 實現(xiàn)接口實現(xiàn)接口 對象轉(zhuǎn)型對象轉(zhuǎn)型接口清華大學(xué) 鄭莉java語言程序設(shè)計135.1.2 實現(xiàn)接口實現(xiàn)接口 例例5_4class circle implements shape2d double r

10、adius; public circle(double r) radius=r; public double area() return (pi * radius * radius); class rectangle implements shape2d int width,height; public rectangle(int w,int h) width=w; height=h; public double area() return (width * height); l聲明聲明circle與與rectangle兩個類實現(xiàn)兩個類實現(xiàn)shape2d接口接口接口清華大學(xué) 鄭莉java語言程

11、序設(shè)計14l測試類測試類public class interfacetester public static void main(string args) rectangle rect=new rectangle(5,6); system.out.println(area of rect = + rect.area(); circle cir=new circle(2.0); system.out.println(area of cir = + cir.area(); l運(yùn)行結(jié)果運(yùn)行結(jié)果area of rect = 30.0area of cir = 12.565.1.2 實現(xiàn)接口實現(xiàn)接口 例

12、例5_4運(yùn)行結(jié)果運(yùn)行結(jié)果接口清華大學(xué) 鄭莉java語言程序設(shè)計15l聲明接口類型的變量,并用它來訪問對象聲明接口類型的變量,并用它來訪問對象public class variabletester public static void main(string args) shape2d var1,var2;var1=new rectangle(5,6);system.out.println(area of var1 = + var1.area();var2=new circle(2.0);system.out.println(area of var2 = + var2.area();l輸出結(jié)果輸

13、出結(jié)果area of var1 = 30.0area of var2 = 12.565.1.2 實現(xiàn)接口實現(xiàn)接口 例例5_5接口清華大學(xué) 鄭莉java語言程序設(shè)計16lmovableobject接口定義了所有接口定義了所有“可移動可移動對象對象”能做的事情能做的事情public interface movableobject public boolean start(); public void stop(); public boolean turn(int degrees); public double fuelremaining(); public void changespeed(dou

14、ble kmperhour);5.1.2 實現(xiàn)接口實現(xiàn)接口 movableobject接口接口接口清華大學(xué) 鄭莉java語言程序設(shè)計17lplane、car、 train、 boat 分別實現(xiàn)分別實現(xiàn) movableobject 接口接口public class plane implements movableobject public int seatcapacity; public company owner; public date lastrepairdate; /實現(xiàn)movalbelobject接口的所有方法 public boolean start() /啟動飛機(jī),成功則返回tru

15、e public void stop() /停止 public boolean turn(int degrees) /轉(zhuǎn)向,成功則返回true public double fuelremaining() /返回燃料剩余量 public void changespeed(double kmperhour) /改變速度 /plane類自己的方法: public date getlastrepairdate() /. public double calculatewindresistance() /. 5.1.2 實現(xiàn)接口實現(xiàn)接口 movableobject接口的實現(xiàn)接口的實現(xiàn)接口清華大學(xué) 鄭莉ja

16、va語言程序設(shè)計18l為為 movableobjects安裝遙控器安裝遙控器(remote control)public class remotecontrol private movableobject machine; remotecontrol(movableobject m) machine = m; /按下“啟動”按鈕: public void start() boolean okay = machine.start(); if (!okay) display(no response on start); /. remote control 構(gòu)造方法的形參類型為 movableobj

17、ect,它可以是plane, car, train, boat, 等等5.1.2 實現(xiàn)接口實現(xiàn)接口 remotecontrol類類接口清華大學(xué) 鄭莉java語言程序設(shè)計195.1.3 多重繼承多重繼承l(wèi)多重繼承多重繼承 java的設(shè)計以簡單實用為導(dǎo)向,不允許一個類有多個父類 但允許一個類可以實現(xiàn)多個接口,通過這種機(jī)制可實現(xiàn)多重繼承 一個類實現(xiàn)多個接口的語法如下類修飾符 class 類名稱 implements 接口1,接口2, 接口清華大學(xué) 鄭莉java語言程序設(shè)計20lcar類可以實現(xiàn)接口類可以實現(xiàn)接口insurable,drivable,sellablepublic class car i

18、mplements insurable, drivable, sellable . 5.1.3 多重繼承多重繼承 car的例子的例子接口清華大學(xué) 鄭莉java語言程序設(shè)計21l聲明聲明circle類實現(xiàn)接口類實現(xiàn)接口shape2d和和color shape2d具有pi與area()方法,用來計算面積 color則具有setcolor方法,可用來賦值顏色 通過實現(xiàn)這兩個接口,circle類得以同時擁有這兩個接口的成員,達(dá)到了多重繼承的目的interface shape2d /聲明shape2d接口 final double pi=3.14; /數(shù)據(jù)成員一定要初始化 public abstract

19、 double area(); /抽象方法interface color void setcolor(string str); /抽象方法5.1.3 多重繼承多重繼承 例例5_6接口清華大學(xué) 鄭莉java語言程序設(shè)計22class circle implements shape2d,color / 實現(xiàn)circle類 double radius; string color; public circle(double r) /構(gòu)造方法 radius=r; public double area() /定義area()的處理方式 return (pi*radius*radius); public v

20、oid setcolor(string str) /定義setcolor()的處理方式 color=str; system.out.println(color=+color); 接口5.1.3 多重繼承多重繼承 例例5_6清華大學(xué) 鄭莉java語言程序設(shè)計23l測試類測試類public class multiinterfacetester public static void main(string args) circle cir; cir=new circle(2.0); cir.setcolor(blue); system.out.println(area = + cir.area();

21、 l輸出結(jié)果輸出結(jié)果color=bluearea = 12.56接口5.1.3 多重繼承多重繼承 例例5_6運(yùn)行結(jié)果運(yùn)行結(jié)果清華大學(xué) 鄭莉java語言程序設(shè)計245.1.4 接口的擴(kuò)展接口的擴(kuò)展l接口的擴(kuò)展接口的擴(kuò)展 接口可通過擴(kuò)展的技術(shù)派生出新的接口l原來的接口稱為基本接口(base interface)或父接口(super interface)l派生出的接口稱為派生接口(derived interface)或子接口(sub interface) 派生接口不僅可以保有父接口的成員,同時也可加入新成員以滿足實際問題的需要 實現(xiàn)接口的類也必須實現(xiàn)此接口的父接口 接口擴(kuò)展的語法interface

22、子接口的名稱 extends 父接口的名稱1,父接口的名稱2, 接口清華大學(xué) 鄭莉java語言程序設(shè)計25lshape是父接口,是父接口,shape2d與與shape3d是其子接是其子接口???。circle類及類及rectangle類實現(xiàn)接口類實現(xiàn)接口shape2d,而而box類及類及sphere類實現(xiàn)接口類實現(xiàn)接口shape3d 5.1.4 接口的擴(kuò)展接口的擴(kuò)展 例例5_7shape接口接口shape2d接口接口shape3d接口接口sphere類類box類類rectangle類類circle類類接口清華大學(xué) 鄭莉java語言程序設(shè)計26l部分代碼如下部分代碼如下/ 聲明shape接口int

23、erface shape double pi=3.14; void setcolor(string str); /聲明shape2d接口擴(kuò)展了shape接口interface shape2d extends shape double area();5.1.4 接口的擴(kuò)展接口的擴(kuò)展 例例5_7接口清華大學(xué) 鄭莉java語言程序設(shè)計27class circle implements shape2d double radius; string color; public circle(double r) radius=r; public double area() return (pi*radius

24、*radius); public void setcolor(string str) color=str; system.out.println(color=+color); public class extendsinterfacetester /測試類 public static void main(string args) circle cir; cir=new circle(2.0); cir.setcolor(blue); system.out.println(area = + cir.area(); 5.1.4 接口的擴(kuò)展接口的擴(kuò)展 例例5_7接口清華大學(xué) 鄭莉java語言程序設(shè)計

25、28l運(yùn)行結(jié)果運(yùn)行結(jié)果color=bluearea = 12.56l說明說明 首先聲明了父接口shape,然后聲明其子接口shape2d 之后聲明類circle實現(xiàn)shape2d子接口,因而在此類內(nèi)必須明確定義setcolor()與area()方法的處理方式 最后在主類中我們聲明了circle類型的變量cir并創(chuàng)建新的對象,最后通過cir對象調(diào)用setcolor()與area()方法5.1.4 接口的擴(kuò)展接口的擴(kuò)展 例例5_7運(yùn)行結(jié)果運(yùn)行結(jié)果接口清華大學(xué) 鄭莉java語言程序設(shè)計29lfixedinsurable 和和depreciatinginsurable接口接口 都繼承了insurabl

26、e接口 實現(xiàn)它們類也必須實現(xiàn)insurable接口中的所有方法public interface depreciatinginsurable extends insurable public double computefairmarketvalue(); public interface fixedinsurable extends insurable public int getevaluationperiod();5.1.4 接口的擴(kuò)展接口的擴(kuò)展 insurable接口的例子接口的例子接口清華大學(xué) 鄭莉java語言程序設(shè)計305.2 塑型塑型l塑型塑型( (type-casting)typ

27、e-casting)又稱為類型轉(zhuǎn)換方式l隱式(自動)的類型轉(zhuǎn)換l顯式(強(qiáng)制)的類型轉(zhuǎn)換清華大學(xué) 鄭莉java語言程序設(shè)計315.2.1 塑型的概念塑型的概念l塑型的對象包括塑型的對象包括基本數(shù)據(jù)類型l將值從一種形式轉(zhuǎn)換成另一種形式引用變量l將對象暫時當(dāng)成更一般的對象來對待,并不改變其類型l只能被塑型為任何一個父類類型對象所屬的類實現(xiàn)的一個接口被塑型為父類或接口后,再被塑型回其本身所在的類塑型清華大學(xué) 鄭莉java語言程序設(shè)計32lmanager對象對象 可以被塑型為employee、person、object或insurable, 不能被塑型為customer、company或car obje

28、ctpersonemployeecustomermanagercompanycarinsurable5.2.1 塑型的概念塑型的概念 一個例子一個例子塑型清華大學(xué) 鄭莉java語言程序設(shè)計33l基本數(shù)據(jù)類型基本數(shù)據(jù)類型 相容類型之間存儲容量低的自動向存儲容量高的類型轉(zhuǎn)換l引用變量引用變量 被塑型成更一般的類employee emp; emp = new manager(); /將manager類型的對象直接賦給 /employee類的引用變量,系統(tǒng)會 /自動將manage對象塑型為employee類 被塑型為對象所屬類實現(xiàn)的接口類型car jetta = new car(); insurabl

29、e item = jetta; 5.2.1 塑型的概念塑型的概念 隱式隱式(自動自動)的類型轉(zhuǎn)換的類型轉(zhuǎn)換塑型清華大學(xué) 鄭莉java語言程序設(shè)計345.2.1 塑型的概念塑型的概念 顯式顯式(強(qiáng)制強(qiáng)制)的類型轉(zhuǎn)換的類型轉(zhuǎn)換l基本數(shù)據(jù)類型基本數(shù)據(jù)類型(int)871.34354; / 結(jié)果為 871 (char)65; / 結(jié)果為a (long)453; / 結(jié)果為453ll引用變量:還原為本來的類型引用變量:還原為本來的類型employee emp; manager man;emp = new manager();man = (manager)emp; /將emp強(qiáng)制塑型為本來的類型塑型清華大

30、學(xué) 鄭莉java語言程序設(shè)計355.2.2 塑型的應(yīng)用塑型的應(yīng)用l塑型應(yīng)用的場合包括塑型應(yīng)用的場合包括賦值轉(zhuǎn)換l賦值號右邊的表達(dá)式類型或?qū)ο筠D(zhuǎn)換為左邊的類型方法調(diào)用轉(zhuǎn)換l實參的類型轉(zhuǎn)換為形參的類型算數(shù)表達(dá)式轉(zhuǎn)換l算數(shù)混合運(yùn)算時,不同類型的項轉(zhuǎn)換為相同的類型再進(jìn)行運(yùn)算字符串轉(zhuǎn)換l字符串連接運(yùn)算時,如果一個操作數(shù)為字符串,一個操作數(shù)為數(shù)值型,則會自動將數(shù)值型轉(zhuǎn)換為字符串 塑型清華大學(xué) 鄭莉java語言程序設(shè)計36l當(dāng)一個類對象被塑型為其父類后,它提供的方法當(dāng)一個類對象被塑型為其父類后,它提供的方法會減少會減少 當(dāng)manager對象被塑型為employee之后,它只能接收getname()及gete

31、mployeenumber()方法,不能接收getsalary()方法 將其塑型為本來的類型后,又能接收getsalary()方法了5.2.2 塑型的應(yīng)用塑型的應(yīng)用塑型清華大學(xué) 鄭莉java語言程序設(shè)計375.2.3 方法的查找方法的查找l如果在塑型前和塑型后的類中都提供如果在塑型前和塑型后的類中都提供了相同的方法,如果將此方法發(fā)送給了相同的方法,如果將此方法發(fā)送給塑型后的對象,那么系統(tǒng)將會調(diào)用哪塑型后的對象,那么系統(tǒng)將會調(diào)用哪一個類中的方法一個類中的方法? 實例方法的查找 類方法的查找塑型清華大學(xué) 鄭莉java語言程序設(shè)計38l從對象創(chuàng)建時的類開始,沿類層次向上查從對象創(chuàng)建時的類開始,沿類層

32、次向上查找找 manager manmanager man = new manager(); = new manager(); employee emp1employee emp1 = new employee(); = new employee(); employee emp2employee emp2 = (employee)man; = (employee)man; emp1emp1. .computepaycomputepay(); (); / / 調(diào)用調(diào)用employeeemployee類中的類中的computepaycomputepay()()方法方法 manman. .compu

33、tepaycomputepay(); (); / / 調(diào)用調(diào)用managermanager類中的類中的computepaycomputepay()()方法方法 emp2emp2. .computepaycomputepay(); (); / / 調(diào)用調(diào)用managermanager類中的類中的computepaycomputepay()()方法方法 5.2.3 方法的查找方法的查找 實例方法的查找實例方法的查找塑型清華大學(xué) 鄭莉java語言程序設(shè)計39l總是在引用變量聲明時所屬的類中進(jìn)行查總是在引用變量聲明時所屬的類中進(jìn)行查找找 manager manmanager man = new man

34、ager(); = new manager(); employee emp1employee emp1 = new employee(); = new employee(); employee emp2employee emp2 = (employee)man; = (employee)man; manman. .expenseallowanceexpenseallowance(); /in manager (); /in manager emp1emp1. .expenseallowanceexpenseallowance(); /in employee (); /in employee e

35、mp2emp2. .expenseallowanceexpenseallowance(); /in employee! (); /in employee! 5.2.3 方法的查找方法的查找 類方法的查找類方法的查找塑型清華大學(xué) 鄭莉java語言程序設(shè)計405.3 多態(tài)的概念多態(tài)的概念l多態(tài)多態(tài) 是指不同類型的對象可以響應(yīng)相同的消息 從相同的基類派生出來的多個類型可被當(dāng)作同一種類型對待,可對這些不同的類型進(jìn)行同樣的處理,由于多態(tài)性,這些不同派生類對象響應(yīng)同一方法時的行為是有所差別的 例如l所有的object類的對象都響應(yīng)tostring()方法l所有的bankaccount類的對象都響應(yīng)depo

36、sit()方法清華大學(xué) 鄭莉java語言程序設(shè)計415.3.1 多態(tài)的目的多態(tài)的目的l多態(tài)的目的多態(tài)的目的 所有的對象都可被塑型為相同的類型,響應(yīng)相同的消息 使代碼變得簡單且容易理解 使程序具有很好的“擴(kuò)展性”多態(tài)的概念清華大學(xué) 鄭莉java語言程序設(shè)計42l繪圖繪圖直接的方式直接的方式 希望能夠畫出任意子類型對象的形狀,可以在shape 類中聲明幾個繪圖方法,對不同的實際對象,采用不同的畫法if (ashape instanceof circle) ashape.drawcircle(); if (ashape instanceof triangle) ashape.drawtriangle

37、(); if (ashape instanceof rectangle)ashape.drawrectangle();5.3.1 多態(tài)的目的多態(tài)的目的 一個例子一個例子多態(tài)的概念清華大學(xué) 鄭莉java語言程序設(shè)計43l繪圖繪圖更好的方式更好的方式 在每個子類中都聲明同名的draw()方法 以后繪圖可如下進(jìn)行shape s = new circle(); s.draw(); lcircle屬于shape的一種,系統(tǒng)會執(zhí)行自動塑型l當(dāng)調(diào)用方法draw時,實際調(diào)用的是circle.draw()l在程序運(yùn)行時才進(jìn)行綁定,接下來介紹綁定的概念5.3.1 多態(tài)的目的多態(tài)的目的 一個例子一個例子多態(tài)的概念清華大學(xué) 鄭莉java語言程序設(shè)計445.3.2 綁定的概念綁定的概念l綁定綁定 指將一個方法調(diào)用同一個方法主體連接到一起 根據(jù)綁定時期的不同,可分為l早期綁定 程序運(yùn)行之前執(zhí)行綁定l晚期綁定 也叫作“動態(tài)綁定”或“運(yùn)行期綁定 基于對象的類別,在程序運(yùn)行時執(zhí)行綁定多態(tài)的概念清華大學(xué) 鄭莉java語言程序設(shè)計45l仍以繪圖為例,所有類都放在仍以繪圖為例,所有類都放在binding包中包中 基類shape建立

溫馨提示

  • 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

提交評論