extends和implements區別
阿新 • • 發佈:2018-07-05
article 具體實現 接口 -s ack statistic 類定義 完全 tex
extends與implements的不同
1、在類的聲明中,通過關鍵字extends來創建一個類的子類。
一個類通過關鍵字implements聲明自己使用一個或者多個接口。
extends 是繼承某個類, 繼承之後可以使用父類的方法, 也可以重寫父類的方法;
implements 是實現多個接口, 接口的方法一般為空的, 必須重寫才能使用
2、extends是繼承父類,只要那個類不是聲明為final或者那個類定義為abstract的就能繼承
JAVA中不支持多重繼承,但是可以用接口 來實現,這樣就要用到implements,繼承只能繼承一個類,
但implements可以實現多個接口,用逗號分開就行了 比如 :
class A extends B implements C,D,E
接口實現的註意點:
a.實現一個接口就是要實現該接口的所有的方法(抽象類除外)。
b.接口中的方法都是抽象的。
c.多個無關的類可以實現同一個接口,一個類可以實現多個無關的接口。
與Extends的不同
extends, 可以實現父類,也可以調用父類初始化 this.parent()。而且會覆蓋父類定義的變量或者函數。這樣的好處是:架構師定義好接口,讓工程師實現就可以了。整個項目開發效率和開發成本大大降低。 implements,實現父類,子類不可以覆蓋父類的方法或者變量。即使子類定義與父類相同的變量或者函數,也會被父類取代掉。
這兩種實現的具體使用,是要看項目的實際情況,需要實現,不可以修改implements,只定義接口需要具體實現,或者可以被修改擴展性好,用extends。
extends 和 implements 的區別
extends是繼承父類,只要那個類不是聲明為final或者那個類定義為abstract的就能繼承,JAVA中不支持多重繼承,但是可以用接口來實現,extends只能繼承一個類,implements可以實現多個接口
比如 class A extends B implements C,D,E
interface定義一些方法,並沒有實現,需要implements來實現才可用extend可以繼承一個接口,但仍是一個接口,也需要implements之後才可用 對於class而言,extends用於(單)繼承一個類(class),而implements用於實現一個接口(interface)。 interface的引入是為了部分地提供多繼承的功能。 在interface中只需聲明方法頭,而將方法體留給實現的class來做。 這些實現的class的實例完全可以當作interface的實例來對待。 在interface之間也可以聲明為extends(多繼承)的關系。 註意一個interface可以extends多個其他interface。
extends和implements區別