Java抽象類和介面

2021-08-21 15:36:19 字數 1674 閱讀 4211

先上原**:

抽象是oop的特徵之一,而實現抽象則是介面以及抽象類。

抽象方法:是一種特殊的方法。(他只能宣告,而沒有具體的實現)

格式宣告:

abstract void fun()
如果乙個類有抽象方法,則稱這個類為抽象類,抽象類必須在類前用abstract關鍵字修飾。

因為抽象類中含有無具體實現的方法,所以不能用抽象類建立物件。

[public] abstract class classname
從以上看出,抽象類為繼承而存在。對於乙個父類,因為它的某個方法在父類中實現出來沒有任何意義,所以必須根據子類的實際需求來進行不同的實現,這時(就可以將這個方法宣告為abstract方法),此時這個類也就成為了abstract類了。

包含抽象方法的類稱為抽象類,但並不意味這抽象類中只能有抽象方法,同樣可以擁有成員變數和普通成員方法。

抽象類與普通類的區別:

1. 抽象方法必須為public或protected,預設情況下預設public。

2. 抽象類不能用來建立物件。

3. 如果乙個類繼承於乙個抽象類,則子類必須實現父類的抽象方法。如果子類沒有實現父類的抽象方法,則必須將子類也定義為abstract類。

inte***ce

在軟體工程中,介面泛指供別人呼叫的方法或函式。

[public] inte***ce inte***cename
1. 介面中可以含有變數和方法。介面中的變數會隱式地指定為public static final變數(並且只能是public static final變數);而方法會被隱式地指定為public abstract方法且只能是public abstract方法。並且介面中所有的方法不能有具體的實現,也就是介面的方法必須都是抽象方法。一般情況下不在介面中定義變數。

2. 要讓乙個類遵循某組特地的介面需要使用implements關鍵字,具體格式如下:

class classname implements inte***ce1, inte***ce2, [...]
可以看出,允許乙個類遵循多個特定的介面。

如果乙個非抽象類遵循某個介面,就必須實現該介面中的所有方法。

對於遵循某個介面的抽象類,可以不實現該介面中的抽象方法。

語法層面

1. 抽象類可以提供成員方法的實現細節,而介面中只能存在public abstratc方法。

2. 抽象類成員變數可以是多種型別的,而介面中的成員變數只能是public static final型別的。

3. 介面中不能含有靜態**塊以及靜態方法,而抽象類可以有靜態**塊和靜態方法。

4. 乙個類只能繼承乙個抽象類,而乙個類卻可以實現多個介面。

設計層面

1. 抽象類是對一種事物的抽象,即物件類,介面是對行為的抽象。

抽象類是對整個類整體進行抽象,包括屬性,行為,但是介面卻是對類區域性行為進行抽象。

2. 設計層面下。抽象類作為很多子類的父類,是一種模板式設計。而介面是一種行為規範,是一種輻射性設計。

對於抽象類,如果需要新增新的方法,可以直接在抽象類中新增具體的實現,子類可以不進行變更。如果介面進行了變更,則

實現這個介面的類都必須進行相應的更改。

Java 介面和抽象類

介面,inte ce,介面泛指供別人呼叫的方法和函式。介面的形式 public inte ce inte cename 介面的特點 1 介面中可以含有變數和方法。2 其中變數被隱式的指定為public static final 變數並且只能是這種變數。3 介面的方法隱式的指定為public abst...

java抽象類和介面

抽象類 乙個類中只要有乙個抽象方法 那麼這個類就必須是抽像的 抽象類必須要進行例項化 public abstract class animal class cat extends animal 介面 從本質上講介面是一種特殊的抽象類 介面中所有的方法都是抽象的 並且介面中的成員都是public 介面...

Java抽象類和介面

含有abstract修飾符的class即為抽象類,abstract類不能建立的例項物件。含有abstract方法的類必須定義為abstract class,abstract class類中的方法不必是抽象的。abstract class 類中定義抽象方法必須在具體 concrete 子類中實現,所以...