-
- 素材大。
- 369 KB
- 素材授權(quán):
- 免費(fèi)下載
- 素材格式:
- .ppt
- 素材上傳:
- lipeier
- 上傳時(shí)間:
- 2019-03-24
- 素材編號(hào):
- 227005
- 素材類(lèi)別:
- 課件PPT
-
素材預(yù)覽
這是java抽象類(lèi)ppt,包括了抽象類(lèi)與抽象方法, 抽象類(lèi)和最終類(lèi) ,接口的概念,接口定義格式,實(shí)現(xiàn)接口,接口與抽象類(lèi)的區(qū)別,接口的應(yīng)用等內(nèi)容,歡迎點(diǎn)擊下載。
java抽象類(lèi)ppt是由紅軟PPT免費(fèi)下載網(wǎng)推薦的一款課件PPT類(lèi)型的PowerPoint.
第 四 章 抽象類(lèi)和接口 Java中的抽象類(lèi)、接口和程序包 ——抽象類(lèi)與抽象方法 抽象類(lèi):用abstract關(guān)鍵字來(lái)修飾一個(gè)類(lèi)時(shí),該類(lèi)叫做抽象類(lèi); 抽象類(lèi)必須被繼承。 抽象類(lèi)不能被直接實(shí)例化。它只能作為其它類(lèi)的超類(lèi),這一點(diǎn)與最終類(lèi)(final類(lèi))正好相反。 抽象方法:用abstract來(lái)修飾一個(gè)方法時(shí),該方法叫做抽象方法。 抽象方法必須被重寫(xiě) 抽象方法只有聲明,不能有實(shí)現(xiàn)。 定義了抽象方法的類(lèi)必須是抽象類(lèi)。 abstract returnType abstractMethod ( [paramlist] ); ——抽象類(lèi)與抽象方法 抽象類(lèi)和最終類(lèi) 抽象類(lèi)和最終類(lèi) 規(guī)定: 抽象類(lèi)不能被直接實(shí)例化,只有它的非抽象子類(lèi)可以創(chuàng)建對(duì)象 抽象類(lèi)中不一定包含抽象方法,但有抽象方法的類(lèi)必定是抽象類(lèi) 抽象類(lèi)中的抽象方法只是聲明,不包含方法體,即不給出方法的實(shí)現(xiàn) 構(gòu)造方法、類(lèi)方法不能聲明為抽象方法 抽象類(lèi)的子類(lèi)必須給出抽象類(lèi)中的抽象方法的具體實(shí)現(xiàn),除非該子類(lèi)也是抽象類(lèi) 抽象類(lèi)和最終類(lèi) 抽象類(lèi)的意義: 描述抽象的概念,規(guī)定必須實(shí)現(xiàn)的方法的統(tǒng)一接口 關(guān)于抽象類(lèi)和抽象方法 Abstracttest.java 最終類(lèi)和最終方法 final關(guān)鍵字修飾的類(lèi)稱為最終類(lèi),最終類(lèi)不能被繼承 final關(guān)鍵字修飾的方法稱為最終方法,最終方法不能被覆蓋 最終方法和最終類(lèi)沒(méi)有必然的對(duì)應(yīng)關(guān)系 Java中的接口 接口的概念 在構(gòu)建問(wèn)題的類(lèi)過(guò)程中,我們經(jīng)常會(huì)遇到一種特殊的情況,在描述某個(gè)類(lèi)的各個(gè)方法時(shí),對(duì)每個(gè)方法我們只能給出其功能實(shí)現(xiàn)的要求(原形聲明)但不能給出具體的功能實(shí)現(xiàn)(函數(shù)定義體)。 因?yàn)槲覀兯幚淼膯?wèn)題只是一個(gè)泛泛的功能說(shuō)明,并沒(méi)有針對(duì)某一具體類(lèi)型的問(wèn)題來(lái)說(shuō)明。 接口定義格式 實(shí)現(xiàn)接口 方法: 通過(guò)定義一個(gè)類(lèi)同時(shí)采用implements來(lái)指明所實(shí)現(xiàn)的接口名,并在該類(lèi)中重寫(xiě)接口中的所有成員方法且給出成員函數(shù)體定義。 要點(diǎn) 類(lèi)中所實(shí)現(xiàn)的接口中的成員函數(shù)的原型都應(yīng)該與它在 接口中的原型定義保持一致; 并在類(lèi)中重寫(xiě)接口中的所有成員方法; 通過(guò)實(shí)現(xiàn)接口,從而可擴(kuò)充或增加該類(lèi)的功能。 接口只定義方法名,而類(lèi)實(shí)現(xiàn)接口內(nèi)部的方法的代碼 接口的繼承只是繼承接口本身,而非代碼,從而不會(huì)產(chǎn)生重復(fù)繼承多次。 注意的 一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口 實(shí)現(xiàn)接口的類(lèi)必須給出接口中所有方法的具體實(shí)現(xiàn)!除非這個(gè)類(lèi)是抽象類(lèi) 接口的作用 接口提供了完全的抽象 說(shuō)明所有實(shí)現(xiàn)該接口的類(lèi)應(yīng)具有的形式 接口中的方法在多個(gè)實(shí)現(xiàn)接口的類(lèi)中表現(xiàn)出多態(tài)性 接口回調(diào) 接口也是引用數(shù)據(jù)類(lèi)型,指向接口的引用也可以指向任意實(shí)現(xiàn)了該接口的類(lèi)創(chuàng)建的實(shí)例 接口回調(diào),即接口的引用可以指向?qū)崿F(xiàn)了接口的類(lèi)的實(shí)例 例子:Interfacetest.java 例子 interface Computer { public void ComputeData(); //計(jì)算機(jī)應(yīng)該有數(shù)據(jù)計(jì)算的功能 public void SaveData(); //計(jì)算機(jī)應(yīng)該有存儲(chǔ)數(shù)據(jù)的功能 public void PrintData(); //計(jì)算機(jī)應(yīng)該有打印數(shù)據(jù)的功能 public void DisplayData(); //計(jì)算機(jī)應(yīng)該有顯示數(shù)據(jù)的功能 } 抽象類(lèi)和接口的對(duì)比 接口和類(lèi)是很相似但又有區(qū)別的一種數(shù)據(jù)結(jié)構(gòu),其設(shè)計(jì)和調(diào)用也是JAVA程序設(shè)計(jì)的一種重要技術(shù)。 從結(jié)構(gòu)上看,接口有如下特點(diǎn): 接口用interface來(lái)定義,而不是class 接口中定義的變量去全部是最終的靜態(tài)變量 接口中沒(méi)有自身的構(gòu)造方法,不能創(chuàng)建實(shí)例,而定義的 其他方法全是抽象方法,即提供了方法的定義,但是沒(méi)有提供方法的實(shí)現(xiàn)。 接口采用多重繼承機(jī)制,而不是采用單一的繼承機(jī)制。 接口與抽象類(lèi)的區(qū)別 抽象類(lèi)的應(yīng)用 abstract class Person { private int ID; private String Name; public abstract void Eat(Food obj); public void Step(Feet obj) { } public void Sleep() { } }在描述某一個(gè)問(wèn)題時(shí),如果只能給出部分的功能實(shí)現(xiàn),而不能給出全部的功能實(shí)現(xiàn)時(shí),應(yīng)該采用抽象類(lèi)來(lái)描述。 接口的應(yīng)用 interface TV { public int Size=29; public abstract void showImage(); public abstract void setChannel(); public abstract void receiveImage(); }在描述某一個(gè)問(wèn)題時(shí),如果不能給出任何的功能實(shí)現(xiàn),應(yīng)該采用接口來(lái)描述。 內(nèi)部類(lèi) 內(nèi)部類(lèi) 內(nèi)部類(lèi)作用 與接口一起實(shí)現(xiàn)完整的多重繼承 內(nèi)部類(lèi)作用 InnerClass.java 內(nèi)部類(lèi)具有訪問(wèn)外部類(lèi)的引用 內(nèi)部類(lèi) 匿名內(nèi)部類(lèi) 當(dāng)只需創(chuàng)建一個(gè)類(lèi)的對(duì)象而用不上它的名字時(shí),可以使用匿名內(nèi)部類(lèi) 匿名內(nèi)部類(lèi)由于沒(méi)有名字,所以它沒(méi)有帶名字的構(gòu)造函數(shù) java的匿名內(nèi)部類(lèi)的語(yǔ)法規(guī)則看上去有些古怪,當(dāng)你只需要?jiǎng)?chuàng)建一個(gè)類(lèi)的對(duì)象而且用不上它的名字時(shí),使用內(nèi)部類(lèi)可以使代碼看上去簡(jiǎn)潔清楚。它的語(yǔ)法規(guī)則是這樣的: new interfacename(){......}; 或 new superclassname(){......}; 有一點(diǎn)需要注意的是,匿名內(nèi)部類(lèi)由于沒(méi)有名字,所以它沒(méi)有帶名字的構(gòu)造函數(shù)(但是如果這個(gè)匿名內(nèi)部類(lèi)繼承了一個(gè)只含有帶參數(shù)構(gòu)造函數(shù)的父類(lèi),創(chuàng)建它的時(shí)候必須帶上這些參數(shù),并在實(shí)現(xiàn)的過(guò)程中使用super關(guān)鍵字調(diào)用相應(yīng)的內(nèi)容)。如果你想要初始化它的成員變量,有下面幾種方法: 如果是在一個(gè)方法內(nèi)部的匿名內(nèi)部類(lèi),可以利用這個(gè)方法傳進(jìn)你想要的參數(shù),不過(guò)記住,這些參數(shù)必須被聲明為final。 將匿名內(nèi)部類(lèi)改造成有名字的局部?jī)?nèi)部類(lèi),這樣它就可以擁有有名字的構(gòu)造函數(shù)了。 在這個(gè)匿名內(nèi)部類(lèi)中使用初始化代碼塊。 匿名內(nèi)部類(lèi)實(shí)例 class PackBox { interface Goods //定義內(nèi)部接口 { String getName(); } Goods SportShoe () { return new Goods() {//匿名內(nèi)部類(lèi) String name = "運(yùn)動(dòng)鞋"; int price = 200; public String getName(){return name;} }; } } //事實(shí)上匿名內(nèi)部類(lèi)必須繼承一個(gè)類(lèi)或?qū)崿F(xiàn)一個(gè)接口
孫鑫java ppt:這是孫鑫java ppt,包括了Java的起源,我們?yōu)槭裁匆肑ava,Java跨平臺(tái)的原理,Java開(kāi)發(fā)工具包(JDK)的下載,面向?qū)ο蟪绦蛟O(shè)計(jì),一個(gè)簡(jiǎn)單的例子等內(nèi)容,歡迎點(diǎn)擊下載。
張孝祥java基礎(chǔ)ppt:這是張孝祥java基礎(chǔ)ppt,包括了配套書(shū)籍,Java郵件開(kāi)發(fā)介紹,課程目標(biāo),為什么要學(xué)習(xí)郵件開(kāi)發(fā),如何學(xué)習(xí)郵件開(kāi)發(fā),電子郵件的一些基本常識(shí),郵件內(nèi)容的組織結(jié)構(gòu)等內(nèi)容,歡迎點(diǎn)擊下載。
javamail ppt:這是javamail ppt,包括了JavaMail基礎(chǔ)知識(shí),發(fā)送簡(jiǎn)單郵件,發(fā)送SMTP身份認(rèn)證的郵件,接收郵件,郵件附件的處理等內(nèi)容,歡迎點(diǎn)擊下載。