如何理解java中的介面和抽象類

2021-09-01 02:09:06 字數 747 閱讀 8310

抽象類與介面的區別

抽象類體現的是一種繼承關係,可以理解為「是什麼」;介面體現的是一種實現關係,可以理解為「實現了什麼」。

類中如果有乙個方法是抽象的,則這個類就是抽象類。抽象類中也可以有具體方法。如果抽象類被繼承,則這個類中的抽象方法必須被覆蓋。而介面中的方法必須都被實現,而且方法是沒有實現的,都是空方法,是完全抽象的,它們預設都是抽象方法。可以說,介面是抽象類的乙個特例。

以下摘自網路:

答:首先,介面和抽象類都是抽象方法和常量的集合;抽象類是是要設計者依據它的格式來修改並建立新的類。

其次,介面裡的資料成員必須初始化,且資料成員均為常量;介面裡方法必須全部宣告為adstract

,也就是說,介面不能像抽象類一樣保有一般的方法,必須全部都是「抽象方法」。因為所有的介面都是抽象類,所以不用abstract public

來定義,

而且抽象類不能被例項化,所以介面也不能被例項化.

抽象類是不能生成物件的,乙個抽象類包含的不一定都是抽象函式,

但是介面中的函式一定都是抽象的。在子類繼承父類時,抽象類用的是extends;

介面用的是implements.

含有抽象方法的類必須被宣告抽象類,抽象類的子類必須覆寫所有的抽象方法後才能被例項化,否則這個子類還是個抽象類。從本質上講,介面就是一種特殊的抽象類,這種抽象類中只包含常量和方法的定義,而沒有變數和方法的實現。

總之,從定義、規則和本質上,抽象類和介面都是不同的。

java中抽象 介面

1 抽象 抽象使用abstract關鍵字來體現,abstract修飾類 寫在class前面 代表該類是抽象類,不能被例項化,只能被繼承,抽象類中可以沒有抽象方法,但是只要有抽象方法,那麼該類就必須是抽象類 abstract修飾方法 寫在返回型別前面 代表方法是抽象方法,抽象方法不能有方法體,子類繼承...

JAVA中的介面和抽象類深入理解

抽象類往往用來表徵我們在對問題領域進行分析 設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象,我們不能把它們例項化 拿不出乙個具體的東西 所以稱之為抽象。比如 我們要描述 水果 它就是乙個抽象,它有質量 體積等一些共性 水果有質量 但又缺乏特性 蘋果 橘子都是水果,它們有自...

Java的抽象和介面

抽象類不一定有抽象方法,但有抽象方法的類一定是抽象類或者是介面 抽象類無法進行例項化 根據多型的方式,有具體的子類進行例項化 抽象類的子類 要麼是抽象類 要麼重寫抽象類中的所有抽象方法 抽象類的成員特點 1 成員變數 既可以是變數,也可以是常量。abstract不能修飾成員變數。2 構造方法 有。3...