亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Java中抽象類和接口的示例分析

發布時間:2021-11-16 17:19:10 來源:億速云 閱讀:218 作者:小新 欄目:開發技術

這篇文章主要介紹了Java中抽象類和接口的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。


一、抽象類

1.抽象類

1.1抽象類的定義

在Java面向對象當中,所有的對象都是用過類進行描繪的,但是并不是所有的類都是用來描繪對象的,如果一個類沒有包含足夠多的信息來描述一個具體的對象,這樣的類就是抽象類。

1.2抽象方法的定義方式

public abstract 返回值類型 方法名(參數);

1.3抽象類的定義方式
abstract class 類名 {

}

2.抽象類和實例類的區別

抽象類不可以實例化對象實例類可以實例化對象

3.抽象類示例

定義一個抽象類People,在類中定義一個方法work,不確定人怎么工作,可以定義成抽象方法,來解決父類方法的不確定性。抽象方法不能在父類中實現,所以沒有函數體。那么在后續繼承時,要在子類中重寫該方法,要具體實現該方法。 注意:抽象類中可以包含抽象方法,包含抽象方法的類一定要定義成抽象類。

public abstract class People {
    String name;
    int age;


    public abstract void work();
}

定義一個Student類繼承抽象類People。一個子類繼承一個抽象類,必須重寫這個抽象類中的所有抽象方法,否則就把子類定義成一個抽象類。

public class Student extends People{
    int score;
    int stu_id;

    //重寫繼承抽象類當中的work方法
    @Override
    public void work() {
        System.out.println("好好學習!年薪百萬,迎娶白富美!!!");
    }
}

定義一個測試類TestDemo。

public class TestDemo {
    public static void main(String[] args) {
        People p = new Student();
        p.work();
    }
}

運行觀察運行結果。

Java中抽象類和接口的示例分析

多態的使用,基類的引用變量引用派生類的對象,調用work方法,實現的是派生類Student類中對其抽象基類重寫的work方法。

4.抽象類的特征

①抽象類不能實例化對象,所以抽象類必須被繼承才能使用,其他的功能和普通類相同。 ②一個類只能繼承一個抽象類。其實在Java中一個類只能繼承一個類,不管它的父類是不是抽象類。下面圖示解釋一下。

Java中抽象類和接口的示例分析

如果允許多繼承,在圖示中,D類同時繼承了B類和C類,那么在D類中同時出現了兩個一毛一樣的實例變量a,這是不允許的,因為在同一個作用域中不能重復定義實例變量。因此在Java中只能單一繼承,即一個類只能有一個父類。 ③抽象類的修飾符不能是private。 ④抽象類中不一定包含抽象方法,但是有抽象方法的類必定是抽象類。 ⑤構造方法,類方法不能聲明為抽象方法。 ⑥抽象類的子類必須給出抽象類中的抽象方法的具體實現,除非該子類也是抽象類。

二、接口

1.接口

1.1接口的定義

在軟件工程中,接口泛指供別人調用的方法。在Java中接口是一個抽象類型,比抽象類更加抽象,是抽象方法的集合。一個類通過繼承接口的方式,從而繼承接口的抽象方法。從定義上看,接口只是一個集合,并不是類。類描述了屬性和方法,而接口只包含方法(未實現的方法)和常量。

1.1定義一個接口
public interface 接口名稱 {
//聲明常量
//抽象方法
}

如下:

Java中抽象類和接口的示例分析

①接口的變量會被隱式的指定為public static final 變量(并且只能是public static final變量,用private修飾會編譯報錯) ②接口的方法會被隱式的指定為public abstract 方法。

在接口中定義變量可以省略或少些修飾符,因為底層會給你補全,但是不允許寫錯。

1.2 接口的使用

類名 implements 接口名稱[, 其他接口名稱, 其他接口名稱…, …]

在Java中一個類雖然只能繼承一個類,但是一個類可以實現多個接口。也就是說單一繼承,多實現。

1.3接口的注意事項

①接口中所有的方法不能有具體的實現,也就是說,接口中的方法必須都是抽象方法。從這里可以隱約看出接口和抽象類的區別,接口是一種極度抽象的類型,它比抽象類更加“抽象”,并且一般情況下不在接口中定義變量。 ②在抽象類中,可以包含一個或多個抽象方法,但是在接口中,所有的方法必須是抽象的,不能有方法體,比抽象類更加的抽象。接口規定一個類必須做什么而不規定他如何去做。

2.接口示例

定義一個接口A

public interface A {
    //聲明常量
    final int a = 10;
    //抽象方法
    public abstract void fun();
}

定義一個B類實施接口A

public class B implements A {
    //對接口A里面的抽象方法重寫
    @Override
    public void fun() {
        System.out.println("重寫fun()");
    }
}

定義一個TestDemo測試類實現調用

public class TestDemo {
    public static void main(String[] args) {
        B b = new B();
        b.fun();

        //多態 基接口的引用 引用 實現該接口的對象
        A a = new B();
        a.fun();
    }
}

Java中抽象類和接口的示例分析

注意:如果一個普通類要同時繼承一個類和實現接口,應該先繼承后實現,否則就會語法報錯。例如:public class A extends B implements C,D E…

3.接口的特征

①接口中只定義抽象方法,這些方法默認都是public abstract的,在方法聲明時可以省略這些修飾符。 ②在接口中定義實例變量,非抽象實例方法以及靜態方法都是不允許的。 ③接口中沒有構造方法,也不能被實例化。 ④一個接口不能實現另一個接口,但是可以多繼承其他接口。 ⑤接口必須通過類來實現它的抽象方法。 ⑥如果一個類不能實現完接口中的抽象方法,那么這個類我們應該設計為抽象類。 ⑦不允許創建接口的實例,但是允許定義接口類型的引用變量引用實現該接口的類的實例(多態)

三、抽象類和接口的區別

①抽象類可以提供成員方法的實現細節,而接口中只能存在public abstract 方法; ②抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是public static final類型的; ③接口中不能含有靜態代碼塊以及靜態方法,而抽象類可以有靜態代碼塊和靜態方法; ④一個類只能繼承一個抽象類,而一個類卻可以實現多個接口;

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Java中抽象類和接口的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

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

AI

开鲁县| 洛阳市| 济阳县| 光山县| 合水县| 喀什市| 金平| 商丘市| 衡水市| 剑河县| 临安市| 民勤县| 定远县| 安泽县| 龙陵县| 西乌珠穆沁旗| 益阳市| 静海县| 张家口市| 德安县| 岳阳县| 库尔勒市| 微山县| 宿松县| 邓州市| 溧水县| 万盛区| 永昌县| 平泉县| 班玛县| 望城县| 高邮市| 博乐市| 丹江口市| 乐陵市| 阿克陶县| 台北市| 玉溪市| 公安县| 玉门市| 绥芬河市|