java中的抽象類和接口的區別「javaabstract和接口」

JAVA抽象類是一種使用了關鍵詞「abstract」的聲明的類,凡是使用了關鍵詞「abstract」的關鍵詞修飾的類就是抽象類。前面的文章我們也提到過「類」這個「抽象類」也不例外,是大數據開發基礎的JAVA基礎知識,但這種類是比較特殊的所以要單獨拿出來說一說。接下來就給大家講解「抽象類」。

大數據開發基礎之JAVA抽象類與接口

一、抽象類

如上文所說「抽象類」的定義就是使用了關鍵詞「abstract」的類。在面向對象的概念中,所有的對象都是通過類來描繪對象的,但是反之,並不一定是所有的類都用來描繪對象。因此在某類中並沒有包含足夠的信息來描繪對象,這樣的類就是抽象類。

定義抽象類方法是用abstract關鍵詞修飾例子如下

Abstract void shout();//定義抽象方法

定義抽象類是用abstract關鍵字修飾例如以下所示

abstract class A{//定義一個抽象類

public void fun(){//普通方法

System.out.println(“存在方法體的方法”);

}

public abstract void print();//抽象方法,沒有方法體,有abstract關鍵字做修飾

}

抽象類的特點:

1、有抽象方法的類只能被定義成抽象類,但是抽象類可以沒有抽象方法

2、抽象類是沒有具體對象的概念類,也就是指抽象類不能實例化為對象

3、如果一個類中含有未實現的抽象方法,那麼該類就要使用abstract的聲明作為抽象類

4、抽象方法不可以有方法體

由於抽象類不能實例化對象,所以抽象類必須被繼承才能被使用。其次父類本身就是抽象類的,所以不能使用該方法。

二、接口

JAVA接口(interface)是一系列方法的聲明,是一些方法特徵的集合,在JAVA編程語言中是一個抽象類型,是抽象方法的集合,接口一般用interface來聲明。一個接口只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的功能。也可以這樣理解一個類只有一個直接父類,但是可以有多個接口,JAVA接口本身沒有任何實現。

注意事項:

1、接口並不是類,不要因為接口的編寫方式和類很像就想當然的認為他們是一樣的,但實際上他們屬於不同的概念

2、接口是無法被實例化的,但卻可以被實現

3、接口類型可用來聲明一個變量

4、接口只能定義抽象方法

5、接口中所有的方法都是抽象的和public的,所有的屬性都是public,static,final的。

6、接口用來彌補類無法實現多繼承的局限。

接口定義的語法格式

[public]interface 接口名稱 [extends父接口名列表]

{

//靜態常量

[public] [static] [final] 數據類型變量名=常量值;

//抽象方法

[public] [abstract] [native] 返回值類型方法名(參數列表);

}

注意:

1、public 表示接口的修飾符,當沒有修飾符時,則使用默認的修飾符,此時該接口的訪問權限僅局限於所屬的包;

2、interface_name 表示接口的名稱。

3、extends 表示接口的繼承關係;

4、interface1_name 表示要繼承的接口名稱;

5、constant_name 表示變量名稱,一般是 static 和 final 型的;

6、returnType 表示方法的返回值類型;

7、parameter_list 表示參數列表,在接口中的方法是沒有方法體的。

講完了接口的一些基礎知識,那麼該如何實現接口呢?接下來就給大家講解如何實現接口

大數據開發基礎之JAVA抽象類與接口

三、實現接口

接口被定義後,一個或者多個類都可以實現該接口,這需要在實現接口的類的定義中包含 implements 子句,然後實現由接口定義的方法。實現接口的一般形式如下:

<public> class <class_name> [extends superclass_name] [implements interface[, interface…]]

{

//主體

}

當類實現接口的時候,類要實現接口中所有的方法,不然類就必須聲明為抽象的類。

注意事項:

1、一個類也可以同時實現多個接口

2、一個類只能繼承一個類,但接口卻能實現多個

3、一個接口與另一個接口能夠繼承

大數據開發基礎之JAVA抽象類與接口

JAVA的抽象類和接口都是比較難理解的,但這又是JAVA中的基礎概念,是必須要吃透,搞懂的,所以這個要多去琢磨下,可以邊練邊理解,這樣應該能幫助學習效率,以上就是大數據開發基礎之JAVA抽象類和接口的知識,希望大家能有所收穫,每日更新大數據及JAVA的相關知識,不想錯過就點個關注吧,謝謝大家支持。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/269198.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-16 13:14
下一篇 2024-12-16 13:14

相關推薦

發表回復

登錄後才能評論