經驗

當前位置 /首頁/經驗 > /列表

抽象類與介面的區別

抽象類與介面的區別

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

其次,抽象類可以有預設的方法實現,子類使用extends關鍵字來繼承抽象類,如果子類不是抽象類的話,它需要提供抽象類中所有宣告方法的實現。而介面完全是抽象的,它根本不存在方法的實現,子類使用關鍵字implements來實現介面,它需要提供介面中所有宣告方法的實現。

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

TAG標籤:介面 抽象類 #