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-tw/n/269198.html

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

相關推薦

發表回復

登錄後才能評論