九九百科網

位置:首頁 > 經驗 > 

抽象類與接口的區別

經驗7.59K

抽象類與接口的區別

首先需要了解的是抽象類是用來捕捉子類的通用特性的,而接口則是抽象方法的集合;抽象類不能被實例化,只能被用作子類的超類,是被用來創建繼承層級裏子類的模板,而接口只是一種形式,接口自身不能做任何事情。

其次,抽象類可以有默認的方法實現,子類使用extends關鍵字來繼承抽象類,如果子類不是抽象類的話,它需要提供抽象類中所有聲明方法的實現。而接口完全是抽象的,它根本不存在方法的實現,子類使用關鍵字implements來實現接口,它需要提供接口中所有聲明方法的實現。

抽象類可以有構造器,除了不能實例化抽象類之外,它和普通Java類沒有任何區別,抽象方法可以有public、protected和default這些修飾符。而接口不能有構造器,是完全不同的類型,接口方法默認修飾符是public,不可以使用其它修飾符。

標籤:抽象類 接口