接口和抽象類的區別及使用場景


接口和抽象類的區別

1.首先,從基礎語法上來說接口使用interface 而抽象類使用abstract

2.實現接口的關鍵字為implements,繼承抽象類的關鍵字為extends。一個類可以實現多個接口,但一個類只能繼承一個抽象類。所以,使用接口可以間接地實現多重繼承。

3.接口所有的成員方法都是被public abstract修飾的抽象方法,不能有方法的實現(JDK1.8之前),java 1.8中可以定義default方法體,而抽象類可以有抽象方法與實現。

4.接口的成員變量默認是靜態常量,必須賦初值,不能夠修改。抽象類的成員變量可以是普通變量。

5.抽象類中可以定義構造方法,接口則不能。

6.抽象類可以有 main 方法,並且我們能運行它;接口不能有 main 方法。

什么時候用接口或抽象類?

  1. 如果你擁有一些方法並且想讓它們中的一些有默認實現,那么就使用抽象類

  2. 如果想實現多繼承,則必須使用接口;java不支持多繼承,子類不能繼承多個類,但是可以實現多個接口,因此可以用接口來解決。

  3. 如果基本功能在不斷改變,那么就需要使用抽象類。如果如果不斷改變基本功能並且使用接口,那么就需要改變所有實現了該接口的類。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM