国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java中接口和抽象類的區別與相同之處

2019-11-26 15:09:52
字體:
來源:轉載
供稿:網友

1. 抽象類:
(1).概念:抽象類是對一種事物的抽象,即對類抽。.抽象類是對整個類整體進行抽象,包括屬性、行為。Java抽象類和Java接口一樣,都用來聲明一個新的類型。并且作為一個類型的等級結構的起點。
(2).格式:

復制代碼 代碼如下:

   public abstract class abstractDemo{
            /**屬性*/
            private String name;
            /**方法*/
            public abstract void fun();
        }

(3).說明:
A:抽象類中不一定有抽象方法,但是有抽象方法的類一定要定義為抽象類。
B:在Java語言中,類有兩種,一種是具體類,另一種是抽象類。
具體類可以實例化,抽象類不可以實例化。
C:對于抽象類,如果需要添加新的方法,可以直接在抽象類中添加具體的實現,子類可以不進行變更;
D:抽象方法只有聲明,沒有具體的實現。抽象類是為了繼承而存在的,如果你定義了一個抽象類,卻不去繼承它,就等于白白的創建了這個類。
E:對于一個父類,如果它的一個方法在父類中實現沒有任何意義,必須根據子類的實際需求來進行不同的實現,那么就可以將這個方法聲明為abstract方法,此時這個類也就成為了abstract抽象類。
2. 接口:
(1).概念:接口是對行為的抽象。接口是對類局部(行為)進行抽象。
(2).格式:

復制代碼 代碼如下:

  public interface test {
    /** 抽象方法 */
    public abstract void fun();
}


(3).說明:

接口中可以含有變量和方法,但是,接口中的變量會被隱式地指定為public static final。而方法會被隱式地指定為public abstract方法且只能是public abstract方法。

3. 接口和抽象類的區別與聯系:

(1).抽象類是對一種事物的抽象,即對類抽象,而接口是對行為的抽象。
(2).抽象類是對整個類整體進行抽象,包括屬性、行為,但是接口卻是對類局部(行為)進行抽象。
(3). 繼承是一個 “是不是”的關系,而 接口 實現則是 “有沒有”的關系。如果一個類繼承了某個抽象類,則子類必定是抽象類的種類,而接口實現則是有沒有、具備不具備的關系。
(4).接口只給出方法的聲明,不給出方法的實現。抽象類中可以有抽象方法的一般方法。如果是抽象方法的話,只有方法的聲明。如果是一般方法的話,既有方法的聲明,也有方法的實現。

4. 使用接口的原因:

(1).沒有接口,可插入性就沒有保證。因為Java是單繼承的。
(2).在一個類等級結構中的任何一個類都可以實現一個接口,如果這個類實現了這個接口那么將會影響到此類的所有子類,但是不會影響到此類的所有父類。
(3).一個類最多有一個父類,但是可以同時實現幾個接口。

5. 問題:

在《JAVA編程思想》一書中,將抽象類定義為“包含抽象方法的類”,但是后面發現如果一個類不包含抽象方法,只是用abstract修飾的話也是抽象類。也就是說抽象類不一定必須含有抽象方法。因為如果一個抽象類不包含任何抽象方法,為何還要設計為抽象類?

個人理解:

抽象類目的是用來繼承的,在定義上,可以沒有抽象方法,只是用abstract修飾是沒有語法錯誤的,但是沒有哦實際意義。抽象類中的抽象方法是讓子類繼承抽象類,來實現抽象類中的抽象方法,根據子類的需求分別來實現不同的功能。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天等县| 周口市| 南雄市| 汾阳市| 山阳县| 泸西县| 乐亭县| 甘孜| 栾川县| 柳林县| 克山县| 乡城县| 饶阳县| 克山县| 搜索| 高陵县| 望城县| 罗城| 西宁市| 绥阳县| 修武县| 方正县| 宁武县| 曲阜市| 中西区| 邳州市| 诏安县| 隆昌县| 双江| 松原市| 太湖县| 泌阳县| 全州县| 新化县| 金沙县| 和顺县| 南昌市| 石家庄市| 广州市| 广州市| 蕲春县|