抽象類與接口的區別簡答 Java接口和抽象類的區別?
Java接口和抽象類的區別?一、Java接口和抽象類的相同點(1)都不能被實例化。(2)接口的實現類或抽象類的子類都只有實現了接口或抽象類中的方法后才能實例化。二、Java接口和抽象類的不同點(1)接
Java接口和抽象類的區別?
一、Java接口和抽象類的相同點
(1)都不能被實例化。
(2)接口的實現類或抽象類的子類都只有實現了接口或抽象類中的方法后才能實例化。
二、Java接口和抽象類的不同點
(1)接口只有定義,不能有方法的實現,java 1.8中可以定義default方法體,而抽象類可以有定義與實現,方法可在抽象類中實現。
(2)實現接口的關鍵字為implements,繼承抽象類的關鍵字為extends。一個類可以實現多個接口,但一個類只能繼承一個抽象類。所以,使用接口可以間接地實現多重繼承。
(3)接口強調特定功能的實現,而抽象類強調所屬關系。
(4)接口成員變量默認為public static final,必須賦初值,不能被修改;其所有的成員方法都是public、abstract的。抽象類中成員變量默認default,可在子類中被重新定義,也可被重新賦值;抽象方法被abstract修飾,不能被private、static、synchronized和native等修飾,必須以分號結尾,不帶花括號。