中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中抽象的作用是什么

發布時間:2021-08-05 14:12:42 來源:億速云 閱讀:127 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關Java中抽象的作用是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

Java基礎知識(抽象)

抽象

抽象是從眾多的事物中抽取出共同的、本質性的特征,而舍棄其非本質的特征的過程。具體地說,抽象就是人們在實踐的基礎上,對于豐富的感性材料通過去粗取精、去偽存真、由此及彼、由表及里的加工制作,形成概念、判斷、推理等思維形式,以反映事物的本質和規律的方法。

抽象定義

在繼承過程中,我們知道父類的方法可以子類進行重寫,而每個子類各自的實現都不盡相同。就好比動物都有吃的方法行為吧,而每個動物的子類對于吃的東西都可能不是相同滴,可是這導致了什么呢?

我們定義父類的方法主體是不是就沒有任何意義了,因為在子類調用方法過程中,是調用了自己重寫的方法,而不是父類的方法。

也就是說,父類聲明了方法,子類去各自實現該方法即可。代表著父類可以不知道具體實現是什么,但是清楚的有什么方法是需要的。所以方法父類完全只需要提供一個沒有方法體的方法簽名即可,具體實現交給子類自己去實現。

而我們對于這種沒有方法體的方法稱為抽象方法。在Java語法規定,包含抽象方法的類就是抽象類。

  • 抽象方法 : 沒有方法體的方法。

  • 抽象類:包含抽象方法的類。

定義抽象的關鍵字:abstract,接下來看看如何使用吧!

abstract的使用

abstract是抽象的意思,用于修飾方法方法和類,修飾的方法是抽象方法,修飾的類是抽象類。

抽象方法:

使用abstract 關鍵字修飾方法,該方法就成了抽象方法,抽象方法只包含一個方法名,而沒有方法體。

定義格式:

權限修飾符 abstract 返回值類型 方法名 (參數列表);

代碼如下:

public abstract void eat();

抽象類:

如果一個類包含抽象方法,那么該類必須是抽象類。

注意:抽象類不一定有抽象方法,但是有抽象方法的類必須定義成抽象類。

定義格式:

abstract class 類名字 { 
}

代碼如下:

public abstract class Animal {
    public abstract void eat();
}
定義抽象類

我們將之前的動物類改造成抽象類,然后吃的方法也改造成抽象方法。

注意:一旦定義為抽象類后,子類繼承父類時,是必須重寫里面的抽象方法。

定義抽象父類:

package com.na.pojo;
/**
 * 先定義一個抽象父類 --> 動物類
 * 動物都有一個吃的抽象方法
 */
public abstract class Animal {
    // 定義為抽象方法后,無需去做方法實體的實現!
    public abstract void eat();
}

定義子類:

貓咪:

package com.na.pojo;
/**
 * 定義貓類繼承抽象動物類,
 * 隨之重寫里面的吃行為,因為貓也有吃的行為,但是貓喜歡吃罐頭
 */
public class Cat extends Animal{
    // 抽象類的方法必須重寫,不然編譯會不通過。
    public void eat() {
        System.out.println("小喵咪都喜歡吃魚罐頭!");
    }
    /**
     * 增加一哥貓咪特有的玩球方法()
     */
    public void playBall() {
        System.out.println("小喵咪都喜歡小球!");
    }
}

小狗:

package com.na.pojo;
/**
 * 定義狗類繼承抽象動物類,
 * 隨之重寫里面的吃行為,因為狗也有吃的行為,但是狗喜歡啃骨頭
 */
public class Dog extends Animal{
    // 抽象類的方法必須重寫,不然編譯會不通過。
    public void eat() {
        System.out.println("小狗狗都愛啃骨頭!");
    }
    public void walk() {
        System.out.println("小狗在被我溜著!");
    }
}

定義測試類:

package com.na;
import com.na.pojo.Animal;
import com.na.pojo.Cat;
import com.na.pojo.Dog;
public class Demo {
    public static void main(String[] args) {
        // 創建抽象類,抽象類不能創建對象
//		Animal animal = new Animal();
//        animal.eat();
        // 創建小貓咪
        Cat cat = new Cat();
        cat.eat();
        cat.playBall();
        Dog dog = new Dog();
        dog.eat();
        dog.walk();
    }
}

得到結果:

小喵咪都喜歡吃魚罐頭!
小喵咪都喜歡小球!
小狗狗都愛啃骨頭!
小狗在被我溜著!

類的大致結構:

Java中抽象的作用是什么

注意:假設抽象類可以創建對象,但是呢,里面的抽象方法是沒有方法體給我們去實現,從而程序也是無法執行,所以不讓我們創建對象。

抽象類的一些注意點

對于抽象類的使用,以下為抽象類的使用上要注意的細節:

1.抽象類不能創建對象,如果創建,編譯無法通過而報錯。只能創建其非抽象子類的對象。

假設創建了抽象類的對象,調用抽象的方法,而抽象方法沒有具體的方法體,沒有意義。

2.抽象類中,可以有構造器,是供子類創建對象時,初始化父類成員使用的。

子類的構造方法中,有默認的super(),需要訪問父類構造方法。

package com.na.pojo;
/**
 * 先定義一個抽象父類 --> 動物類
 * 動物都有一個吃的抽象方法
 */
public abstract class Animal {
    private String name;
    private int age;
    // 可以有構造器
    public Animal(){
    }
    // 甚至可以有參構造器
    public Animal(String name, int age){
        this.name = name;
        this.age = age;
    }
    // 定義為抽象方法后,無需去做方法實體的實現!
    public abstract void eat();
}

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

未包含抽象方法的抽象類,目的就是不想讓調用者創建該類對象,通常用于某些特殊的類結構設計。

4.抽象類的子類,必須重寫抽象父類中所有的抽象方法,否則子類也必須定義成抽象類,編譯無法通過而報錯。

如果子類不重寫所有抽象方法,則類中可能會包含抽象方法。那么在創建對象后,調用抽象的方法,沒有意義。

5.抽象類存在的意義是為了被子類繼承,抽象類體現的是模板思想。

抽象類中已經實現的是模板中確定的成員,抽象類不確定如何實現的定義成抽象方法,交給具體的子類去實現。

以上就是Java中抽象的作用是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新余市| 双流县| 沂水县| 鲁甸县| 平乐县| 绍兴县| 鲜城| 华安县| 读书| 邵阳市| 琼海市| 苏尼特右旗| 肥西县| 兰州市| 武冈市| 顺昌县| 新竹县| 卓资县| 永平县| 大渡口区| 分宜县| 灯塔市| 内丘县| 阿合奇县| 中江县| 区。| 成武县| 石泉县| 盐城市| 慈溪市| 西林县| 东源县| 丁青县| 南郑县| 霍林郭勒市| 沅陵县| 云梦县| 武义县| 永和县| 贵定县| 梁山县|