最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

150天打卡day16_抽象方法和抽象類

2021-04-27 10:59 作者:關(guān)阿姨的Java日記  | 我要投稿

回顧

  • static:靜態(tài)的

  • 靜態(tài)變量:類,方法區(qū),一份,類名點(diǎn)來訪問

    所有對(duì)象所共享的數(shù)據(jù)(圖片、音頻、視頻等)

  • 靜態(tài)方法:類,方法區(qū),一份,類名點(diǎn)來訪問

    • 沒有隱式this傳遞,不能直接訪問實(shí)例成員方法的操作僅與參數(shù)相關(guān)而與對(duì)象無關(guān)

    • 靜態(tài)塊:類,在類被加載期間自動(dòng)執(zhí)行,一次

    • 初始化/加載靜態(tài)資源(圖片、音頻、視頻等)

  • final:不可改變的、最終的,變量不能被改變,方法不能被重寫,類不能被繼承

  • static final:常量

    • 必須聲明同時(shí)初始化,類名點(diǎn),不能改,

    • 建議:所有字母大寫,多個(gè)單詞_分隔

    • 一個(gè)數(shù)永遠(yuǎn)不變,常常使用

what

面向?qū)ο筇卣鳎悍庋b、繼承和多態(tài)

在Java中抽象類表示的是一種繼承關(guān)系,一個(gè)類只能繼承一個(gè)抽象類,而一個(gè)類卻可以實(shí)現(xiàn)多

個(gè)接口。

在面向?qū)ο蟮母拍钪校械膶?duì)象都是通過類來描繪的,但是反過來,并不是所有的類都是用

來描繪對(duì)象的,如果一個(gè)類中沒有包含足夠的信息來描繪一個(gè)具體的對(duì)象,這樣的類就是抽象

類。

抽象類除了不能實(shí)例化對(duì)象之外,類的其它功能依然存在,成員變量、成員方法和構(gòu)造方法的

訪問方式和普通類一樣。

由于抽象類不能實(shí)例化對(duì)象,所以抽象類必須被繼承,才能被使用。也是因?yàn)檫@個(gè)原因,通常

在設(shè)計(jì)階段決定要不要設(shè)計(jì)抽象類。

?父類包含了子類集合的常見的方法,但是由于父類本身是抽象的,所以不能使用這些方法。

?

why

問:一般類里定義的方法,子類也可以覆蓋,沒必要定義成抽象的啊?

答:其實(shí)不是說抽象類有什么用,一般類確實(shí)也能滿足應(yīng)用,但是現(xiàn)實(shí)中確實(shí)有些父類中的方

法確實(shí)沒有必要寫,因?yàn)楦鱾€(gè)子類中的這個(gè)方法肯定會(huì)有不同,所以沒有必要在父類里寫。

抽象方法

abstract 定義的方法稱之為是抽象方法,抽象方法沒有方法體,在小括號(hào)后面用“分號(hào)”結(jié)尾。

通過具體的案例來講解抽象類的抽象方法。

案例:做加減法運(yùn)算器

以上兩個(gè)類存在大量的代碼,這時(shí)就可以向上抽取出一個(gè)父類Cal類,讓所有的加減乘除子類繼承于Cal類

由于getResult方法具體的實(shí)現(xiàn)不明確,不完整,所以可以定義為抽象方法,沒有方法體,小括號(hào)后直接用分號(hào)結(jié)尾。

?public abstract int getResult();

  • 由abstract修飾

  • 抽象方法必須放在抽象類中

  • 只有方法的定義,沒有具體的實(shí)現(xiàn)(連大括號(hào)都沒有)

  • 父類的抽象方法必須由子類重寫實(shí)現(xiàn)。

抽象類

繼承抽象類

抽象類不能實(shí)例化,一個(gè)類繼承了抽象類后必須重寫父類的抽象方法,不同的子類可以有不同

的實(shí)現(xiàn)。

總結(jié):

  • 由abstract修飾

  • 包含抽象方法的類必須是抽象類---抽象方法是不完整的放在不完整的類中

    • ? ? 不包含抽象方法的類也可以聲明為抽象類------我樂意

  • 抽象類不能被實(shí)例化(單獨(dú)存在沒有意義,類是為了生產(chǎn)對(duì)象的)

  • 抽象類是需要被繼承的,子類:

    • 重寫抽象類的所有抽象方法----變不完整為完整

    • 也聲明為抽象類--------------一般不這么做

抽象類的意義

  • 封裝子類共有的屬性和行為 ? ? (代碼復(fù)用)

  • 為所有子類提供統(tǒng)一的類型 ? ? ? ?(向上造型)

  • 可以包含抽象方法,為所有的子類提供了統(tǒng)一的入口,每個(gè)子類的實(shí)現(xiàn)不同,但是入口是一致的。

案列:根據(jù)周長(zhǎng)計(jì)算圓形和正方形的面積

注:正方形的面積公式為:0.0625*c*c。圓形的面積公式為:0.0796*c*c,其中,c表示圖形的周長(zhǎng)。

?

  • 步驟一:創(chuàng)建抽象類Shape,它提供所有屬性所共同擁有的方法和屬性,聲明抽象方法area()求面積,只是提供了對(duì)外統(tǒng)一的入口,至于子類怎么計(jì)算,與他無關(guān)。

  • 步驟二:聲明子類 Square(正方形)和 Circle(矩形)繼承于Shape父類,并實(shí)現(xiàn)抽象的area()方法。

    • Triange(三角形)類

  • Circle(圓形)類

?

歡迎??點(diǎn)贊+關(guān)注,筆芯??


150天打卡day16_抽象方法和抽象類的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
东乌珠穆沁旗| 民乐县| 兴和县| 温州市| 穆棱市| 教育| 蒙自县| 田阳县| 兴业县| 静乐县| 民丰县| 德兴市| 镇坪县| 泗阳县| 山阳县| 枣阳市| 玛多县| 南召县| 隆昌县| 黄骅市| 同江市| 曲阜市| 平塘县| 金平| 佳木斯市| 沙雅县| 新晃| 香格里拉县| 平乡县| 乌什县| 荃湾区| 余姚市| 德惠市| 海阳市| 淮滨县| 舒城县| 荣成市| 土默特右旗| 扬州市| 太原市| 宁津县|