JAVAOOP ?多態(tài)和接口

? 1. 面向?qū)ο笕筇卣骶褪牵悍庋b稳析,繼承洗做,多態(tài),其中多態(tài)是OOP中最核心的一個特征彰居。
? 2. 為什么要用多態(tài)呢诚纸,舉個例子,父類中分別有dog和cat喂食的方法陈惰,在兩個子類Dog和Cat之后畦徘,當(dāng)你再想要喂養(yǎng)只鸚鵡的時候,除了定義一個鸚鵡類抬闯,還要在父類中添加一個喂鸚鵡的方法井辆,如此是不是很麻煩,多態(tài)就是解決這個問題的溶握!
? 3. 什么是多態(tài):同一引用類型杯缺,引用不同的對象調(diào)用方法時可以執(zhí)行不同的操作,即父類引用子類對象?
4. 接口的必要性睡榆,例如當(dāng)有很多類都要實(shí)現(xiàn)相同的收費(fèi)方法體萍肆,這個時候就可以創(chuàng)建這個收費(fèi)方法接口袍榆,使各個類產(chǎn)生各自的收費(fèi)行為?
5. 面向接口編程:軟件系統(tǒng)的整體架構(gòu)由接口構(gòu)成,而不是具體的類塘揣,我們可以先設(shè)計(jì)好這些接口包雀,然后編寫具體的實(shí)現(xiàn)類來實(shí)現(xiàn)相應(yīng)的功能。? ? ? ?


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 多態(tài)與接口

? ? 繼承中的多態(tài)
? ? ? ? ? ? ? 概念
? ? ? ? ? ? ? ? ? ? ? 以父類定義參數(shù)或變量的類型亲铡,運(yùn)行時傳遞不同的子類實(shí)例馏艾,執(zhí)行不同的操作過程 實(shí)現(xiàn)? ? ? ? ? ? ? ? ? ? ? 1.子類繼承父類,并且重寫父類的方法? ? ? ? ? ? ? ? ? ? ? 2.以父類定義變量類型奴愉,調(diào)用是傳遞子類實(shí)例
? ? 向上轉(zhuǎn)型和向下轉(zhuǎn)型(前提符合is-a關(guān)系)? ? ? ? ? ? ? ? Pet p1=new Dog();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? p1.eat();? ? ? ? ? ? ?
Pet p2=new Cat();? ? ? ? ? ? ? ? ?
? p2.eat();


? ? ? ? ? 向上轉(zhuǎn)型:將子類實(shí)例賦值給父類變量:將丟失子類特有屬性及方法
? ? ? ? ? 向下轉(zhuǎn)型:將父類對象強(qiáng)轉(zhuǎn)成子類類型(強(qiáng)制類型轉(zhuǎn)換? 類型兼容)? ? ? ? ? ? Pet p1=new Dog(); //向上轉(zhuǎn)型? ? ? ? ? ? p1.eat(); //調(diào)用子類中的eat方法? ? ? ? ? ? Dog d=(Dog)p1; //向下轉(zhuǎn)型? ? ? ? ? ? d.catchFly(); //可以調(diào)用子類獨(dú)有的方法?


? ? ? 抽象類

? ? ? ? ? 抽象方法所在的類一定是抽象類 抽象類中不一定有抽象方法? ? ? ? ? ? ? ?
? ? ? ? ? 抽象類使用abstract關(guān)鍵字來實(shí)現(xiàn)? ? ? ? ? ? ?
? ? ? ? ? Java中 當(dāng)一個方法被定義為abstract時琅摩,對原本的代碼會造成以下影響:? ?
? ? ? ? ? ? ? ? ? 此方法必須去掉實(shí)現(xiàn)過程,從而只表達(dá)一種抽象的方法外形锭硼。? ? ?
? ? ? ? ? ? ? ? ? 類也必須變成abstract的(這時我們將之稱為抽象類)房资。? ? ?
? ? ? ? ? ? ? ? 一個類變抽象以后,不能被實(shí)例化檀头,也就是說即使有構(gòu)造方法轰异,也不能被new調(diào)用,這時的構(gòu)造方法只能被子類通過super來進(jìn)行調(diào)用暑始。


? ? 接口

? ? ? ? ? 使用interface定義接口 實(shí)現(xiàn)類使用implements實(shí)現(xiàn)接? 口? ? ? ? ? ? ? public interface PCI { //PCI接
口? ? ? ? ? ? ? ? ? ? public void work(); //沒有方法體? ? ? ? ? ? ? ? }
? ? ? ? 接口的特點(diǎn)
? ? ? ? ? ? ? 1.接口必須是public
? ? ? ? ? ? ? 2.接口中的所有方法都是public并且abstract搭独,可以省略
? ? ? ? ? ? ? 3.接口中不能定義屬性變量,只能定義常量? ? ? ? ? ? ? 4.接口不能被實(shí)例化
? ? ? ? ? ? ? 接口可以彌補(bǔ)繼承的缺點(diǎn):單繼承廊镜;一個類可以實(shí)現(xiàn)多個接口? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? public class 類名稱? implement? 接口1, 接口2......{ }
? ? ? ? 接口的含義
? ? ? ? ? ? ? ? 1.接口代表是一種規(guī)則
? ? ? ? ? ? ? ? 2.接口代表是一種能力? ? ? ? ? ? ? ?
? ? ? 接口實(shí)現(xiàn)的多態(tài)


? ? ? 抽象類與接口的比較

? ? ? ? ? ? ? 1.抽象類和接口都不能實(shí)例化對象
? ? ? ? ? ? ? 3.抽象類中有構(gòu)造方法牙肝,接口沒有
? ? ? ? ? ? ? 2.抽象類中可以聲明變量屬性和普通方法,而接口不能
? ? ? ? ? ? ? 4.抽象類中可以有私有化成員嗤朴,單接口不能? ? ? ? ? ? ? 5.子類繼承抽象是只能是單繼承配椭,而接口可以同時實(shí)現(xiàn)多個? ? ?


? ? ? 面向接口編程的優(yōu)點(diǎn):? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? 1.接口和實(shí)現(xiàn)類分離了,適用于團(tuán)隊(duì)的協(xié)作開發(fā)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? 2.增強(qiáng)了程序的可擴(kuò)展性可維護(hù)性雹姊。? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? 缺點(diǎn): 設(shè)計(jì)難了股缸,在你沒有寫實(shí)現(xiàn)的時候,就得想好接口吱雏,接口一變敦姻,全部實(shí)
現(xiàn)? ? ? ? ? ? ? ? ? ? ? ? ? ? 了 該? 接口的類都要變化,這就是所謂的設(shè)計(jì)比實(shí)現(xiàn)難歧杏。


以上是我自己的一些總結(jié)镰惦,在編寫時格式有點(diǎn)錯誤,不過不影響得滤。繼續(xù)努力!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末陨献,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子懂更,更是在濱河造成了極大的恐慌眨业,老刑警劉巖急膀,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異龄捡,居然都是意外死亡卓嫂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門聘殖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晨雳,“玉大人,你說我怎么就攤上這事奸腺〔徒” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵突照,是天一觀的道長帮非。 經(jīng)常有香客問我,道長讹蘑,這世上最難降的妖魔是什么末盔? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮座慰,結(jié)果婚禮上陨舱,老公的妹妹穿的比我還像新娘。我一直安慰自己版仔,他們只是感情好游盲,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著邦尊,像睡著了一般背桐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蝉揍,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機(jī)與錄音畦娄,去河邊找鬼又沾。 笑死,一個胖子當(dāng)著我的面吹牛熙卡,可吹牛的內(nèi)容都是我干的杖刷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼驳癌,長吁一口氣:“原來是場噩夢啊……” “哼滑燃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起颓鲜,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤表窘,失蹤者是張志新(化名)和其女友劉穎典予,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乐严,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瘤袖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了昂验。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捂敌。...
    茶點(diǎn)故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖既琴,靈堂內(nèi)的尸體忽然破棺而出占婉,到底是詐尸還是另有隱情,我是刑警寧澤甫恩,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布逆济,位于F島的核電站,受9級特大地震影響填物,放射性物質(zhì)發(fā)生泄漏纹腌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一滞磺、第九天 我趴在偏房一處隱蔽的房頂上張望升薯。 院中可真熱鬧,春花似錦击困、人聲如沸涎劈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛛枚。三九已至,卻和暖如春脸哀,著一層夾襖步出監(jiān)牢的瞬間蹦浦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工撞蜂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留盲镶,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓蝌诡,卻偏偏與公主長得像溉贿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子浦旱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法宇色,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,235評論 0 2
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法宣蠕,繼承相關(guān)的語法例隆,異常的語法,線程的語...
    子非魚_t_閱讀 31,664評論 18 399
  • 面向?qū)ο笾饕槍γ嫦蜻^程植影。 面向過程的基本單元是函數(shù)裳擎。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,059評論 0 4
  • (一)Java部分 1、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,114評論 0 62