最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用abstract格式修飾抽象方法

 更新時(shí)間:2023年05月24日 14:26:18   作者:讓你五行代碼  
abstract是抽象的意思,用于修飾方法方法和類(lèi),修飾的方法是抽象方法,修飾的類(lèi)是抽象類(lèi),這篇文章主要介紹了怎樣使用abstract格式修飾抽象方法,需要的朋友可以參考下

父類(lèi)中的方法,被它的子類(lèi)們重寫(xiě),子類(lèi)各自的實(shí)現(xiàn)都不盡相同。那么父類(lèi)的方法聲明和方法主體,只有聲明還有意義,而方法主體則沒(méi)有存在的意義了(因?yàn)樽宇?lèi)對(duì)象會(huì)調(diào)用自己重寫(xiě)的方法)。換句話說(shuō),父類(lèi)可能知道子類(lèi)應(yīng)該有哪個(gè)功能,但是功能具體怎么實(shí)現(xiàn)父類(lèi)是不清楚的(由子類(lèi)自己決定),父類(lèi)只需要提供一個(gè)沒(méi)有方法體的定義即可,具體實(shí)現(xiàn)交給子類(lèi)自己去實(shí)現(xiàn)。我們把沒(méi)有方法體的方法稱為抽象方法。Java語(yǔ)法規(guī)定,包含抽象方法的類(lèi)就是抽象類(lèi)。

抽象方法 : 沒(méi)有方法體的方法。

抽象類(lèi):包含抽象方法的類(lèi)。

抽象方法和abstract

abstract是抽象的意思,用于修飾方法方法和類(lèi),修飾的方法是抽象方法,修飾的類(lèi)是抽象類(lèi)。

使用abstract關(guān)鍵字修飾方法,該方法就成了抽象方法,抽象方法只包含一個(gè)方法名,而沒(méi)有方法體,具體定義格式如下:

java
修飾符 abstract 返回值類(lèi)型 方法名 (參數(shù)列表);

代碼舉例:

java
public abstract void run();

抽象類(lèi)

如果一個(gè)類(lèi)包含抽象方法,那么該類(lèi)必須是抽象類(lèi)。注意:抽象類(lèi)不一定有抽象方法,但是有抽象方法的類(lèi)必須定義成抽象類(lèi)。

抽象類(lèi)的定義格式如下:

java
abstract class 類(lèi)名字 {?
}

代碼舉例:

java
public abstract class Animal {
    public abstract void run();
}

繼承抽象類(lèi)的子類(lèi)必須重寫(xiě)父類(lèi)所有的抽象方法。否則,該子類(lèi)也必須聲明為抽象類(lèi)。代碼舉例:

java
// 父類(lèi),抽象類(lèi)
abstract class Employee {
    private String id;
    private String name;
    private double salary;
    public Employee() {
    }
    public Employee(String id, String name, double salary) {
        this.id = id;
        this.name = name;
        this.salary = salary;
    }
    // 抽象方法
    // 抽象方法必須要放在抽象類(lèi)中
    abstract public void work();
}
// 定義一個(gè)子類(lèi)繼承抽象類(lèi)
class Manager extends Employee {
    public Manager() {
    }
    public Manager(String id, String name, double salary) {
        super(id, name, salary);
    }
    // 2.重寫(xiě)父類(lèi)的抽象方法
    @Override
    public void work() {
        System.out.println("管理其他人");
    }
}
// 定義一個(gè)子類(lèi)繼承抽象類(lèi)
class Cook extends Employee {
    public Cook() {
    }
    public Cook(String id, String name, double salary) {
        super(id, name, salary);
    }
    @Override
    public void work() {
        System.out.println("廚師炒菜多加點(diǎn)鹽...");
    }
}
// 測(cè)試類(lèi)
public class Demo10 {
    public static void main(String[] args) {
        // 創(chuàng)建抽象類(lèi),抽象類(lèi)不能創(chuàng)建對(duì)象
        // 假設(shè)抽象類(lèi)讓我們創(chuàng)建對(duì)象,里面的抽象方法沒(méi)有方法體,無(wú)法執(zhí)行.所以不讓我們創(chuàng)建對(duì)象
//        Employee e = new Employee();
//        e.work();
        // 3.創(chuàng)建子類(lèi)
        Manager m = new Manager();
        m.work();
        Cook c = new Cook("ap002", "庫(kù)克", 1);
        c.work();
    }
}

此時(shí)的方法重寫(xiě),是子類(lèi)對(duì)父類(lèi)抽象方法的完成實(shí)現(xiàn),我們將這種方法重寫(xiě)的操作,也叫做實(shí)現(xiàn)方法。

抽象類(lèi)的特征

抽象類(lèi)的特征總結(jié)起來(lái)可以說(shuō)是有得有失

有得:抽象類(lèi)得到了擁有抽象方法的能力。

有失:抽象類(lèi)失去了創(chuàng)建對(duì)象的能力。

其他成員(構(gòu)造方法,實(shí)例方法,靜態(tài)方法等)抽象類(lèi)都是具備的。

抽象類(lèi)的細(xì)節(jié)

關(guān)于抽象類(lèi)的使用,以下為語(yǔ)法上要注意的細(xì)節(jié),雖然條目較多,但若理解了抽象的本質(zhì),無(wú)需死記硬背。

1. 抽象類(lèi)不能創(chuàng)建對(duì)象,如果創(chuàng)建,編譯無(wú)法通過(guò)而報(bào)錯(cuò)。只能創(chuàng)建其非抽象子類(lèi)的對(duì)象。

假設(shè)創(chuàng)建了抽象類(lèi)的對(duì)象,調(diào)用抽象的方法,而抽象方法沒(méi)有具體的方法體,沒(méi)有意義。

2. 抽象類(lèi)中,可以有構(gòu)造方法,是供子類(lèi)創(chuàng)建對(duì)象時(shí),初始化父類(lèi)成員使用的。

子類(lèi)的構(gòu)造方法中,有默認(rèn)的super(),需要訪問(wèn)父類(lèi)構(gòu)造方法。

3. 抽象類(lèi)中,不一定包含抽象方法,但是有抽象方法的類(lèi)必定是抽象類(lèi)。

未包含抽象方法的抽象類(lèi),目的就是不想讓調(diào)用者創(chuàng)建該類(lèi)對(duì)象,通常用于某些特殊的類(lèi)結(jié)構(gòu)設(shè)計(jì)。

4. 抽象類(lèi)的子類(lèi),必須重寫(xiě)抽象父類(lèi)中所有的抽象方法,否則子類(lèi)也必須定義成抽象類(lèi),編譯無(wú)法通過(guò)而報(bào)錯(cuò)。

假設(shè)不重寫(xiě)所有抽象方法,則類(lèi)中可能包含抽象方法。那么創(chuàng)建對(duì)象后,調(diào)用抽象的方法,沒(méi)有意義。

5. 抽象類(lèi)存在的意義是為了被子類(lèi)繼承。

抽象類(lèi)中已經(jīng)實(shí)現(xiàn)的是模板中確定的成員,抽象類(lèi)不確定如何實(shí)現(xiàn)的定義成抽象方法,交給具體的子類(lèi)去實(shí)現(xiàn)。

抽象類(lèi)存在的意義:抽象類(lèi)存在的意義是為了被子類(lèi)繼承,否則抽象類(lèi)將毫無(wú)意義。抽象類(lèi)可以強(qiáng)制讓子類(lèi),一定要按照規(guī)定的格式進(jìn)行重寫(xiě)。

到此這篇關(guān)于怎樣使用abstract格式修飾抽象方法?的文章就介紹到這了,更多相關(guān)abstract格式修飾抽象方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 設(shè)計(jì)模式之原型模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    設(shè)計(jì)模式之原型模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了設(shè)計(jì)模式之原型模式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • java程序員如何編寫(xiě)更好的單元測(cè)試的7個(gè)技巧

    java程序員如何編寫(xiě)更好的單元測(cè)試的7個(gè)技巧

    測(cè)試是開(kāi)發(fā)的一個(gè)非常重要的方面,可以在很大程度上決定一個(gè)應(yīng)用程序的命運(yùn)。良好的測(cè)試可以在早期捕獲導(dǎo)致應(yīng)用程序崩潰的問(wèn)題,但較差的測(cè)試往往總是導(dǎo)致故障和停機(jī)。本文主要介紹java程序員編寫(xiě)更好的單元測(cè)試的7個(gè)技巧。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • SpringBoot集成消息隊(duì)列的項(xiàng)目實(shí)踐

    SpringBoot集成消息隊(duì)列的項(xiàng)目實(shí)踐

    本文主要介紹了SpringBoot集成消息隊(duì)列的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • iBatis習(xí)慣用的16條SQL語(yǔ)句

    iBatis習(xí)慣用的16條SQL語(yǔ)句

    iBatis 是apache 的一個(gè)開(kāi)源項(xiàng)目,一個(gè)O/R Mapping 解決方案,iBatis 最大的特點(diǎn)就是小巧,上手很快.這篇文章主要介紹了iBatis習(xí)慣用的16條SQL語(yǔ)句的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • 深入解析Java多態(tài)進(jìn)階學(xué)習(xí)

    深入解析Java多態(tài)進(jìn)階學(xué)習(xí)

    java的動(dòng)態(tài)綁定機(jī)制非常重要。這篇文章將帶大家更深入的學(xué)習(xí)一下Java的多態(tài),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下
    2022-07-07
  • MAVEN_HOME、M2_HOME,maven環(huán)境變量設(shè)置方式

    MAVEN_HOME、M2_HOME,maven環(huán)境變量設(shè)置方式

    這篇文章主要介紹了MAVEN_HOME、M2_HOME,maven環(huán)境變量設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • IDEA設(shè)置多行展示導(dǎo)航欄方式

    IDEA設(shè)置多行展示導(dǎo)航欄方式

    在IDEA中開(kāi)啟多行導(dǎo)航欄可以增加工作效率,具體操作步驟包括訪問(wèn)“File”,進(jìn)入“Settings”,選擇“Editor”后修改“EditorTabs”設(shè)置中的“Show tabs in one row”選項(xiàng),取消勾選后保存即可,這使得在打開(kāi)多個(gè)文件時(shí),導(dǎo)航欄可以顯示更多標(biāo)簽,便于管理和查看代碼
    2024-09-09
  • 重新理解Java泛型

    重新理解Java泛型

    這篇文章主要介紹了重新理解Java泛型,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Struts2學(xué)習(xí)筆記(3)-DMI動(dòng)態(tài)調(diào)用方式

    Struts2學(xué)習(xí)筆記(3)-DMI動(dòng)態(tài)調(diào)用方式

    本文主要介紹Struts2的DMI動(dòng)態(tài)調(diào)用的兩種方式,簡(jiǎn)單實(shí)用,希望能給大家做一個(gè)參考。
    2016-06-06
  • spring使用三級(jí)緩存解決循環(huán)依賴的情況

    spring使用三級(jí)緩存解決循環(huán)依賴的情況

    Spring 2.6后默認(rèn)禁用循環(huán)依賴,啟動(dòng)時(shí)報(bào)錯(cuò);可通過(guò)@Lazy注解或配置啟用,三級(jí)緩存分別存儲(chǔ)完整Bean、部分注入對(duì)象和未注入對(duì)象,解決依賴注入問(wèn)題
    2025-09-09

最新評(píng)論

芦山县| 唐河县| 日喀则市| 南阳市| 皋兰县| 汉寿县| 海南省| 阿尔山市| 黄山市| 鹰潭市| 曲松县| 兴业县| 萨迦县| 福鼎市| 岫岩| 广元市| 清远市| 永善县| 于都县| 大竹县| 玉田县| 汶川县| 霞浦县| 长沙市| 灵宝市| 石阡县| 乌拉特中旗| 承德市| 杨浦区| 高安市| 桃源县| 个旧市| 车致| 杨浦区| 巴楚县| 娱乐| 常熟市| 永靖县| 海门市| 眉山市| 南乐县|