抽象類和接口的區別以及jdk1.8之后接口里面可以實現方法


接口和抽象類的概念不一樣。接口是對動作的抽象,抽象類是對根源的抽象。

當你關注一個事物的本質的時候,用抽象類;當你關注一個操作的時候,用接口。

第一點. 接口可以多繼承,抽象類不行
第二點. 接口中,在jdk1.8之后可以用static和default去修飾方法並且實現,此時實現接口的子類可以調用default修飾的方法,接口名調用被static修飾的靜態方法(default只能用於接口或者switch case上);而抽象類可以實現部分方法。
第四點. 接口中基本數據類型為static 而抽類象不是的。

如果A接口和B接口中有參數相同,方法名相同eat的抽象方法,C類去實現這兩個接口,重寫任意一個就行;

但如果A接口和B接口中有參數相同,方法名相同,方法體不同的被default修飾的方法,C類直接實現需要重寫該方法,方法體里面

默認寫法為:A.super.eat();調用其中任意一個接口中的方法,也可以改成B.super.eat();該寫法只能是:C類實現的含有defaut修飾的方法的接口名.super.被default修飾的方法名();C類沒有實現D接口,即使D接口中有defaut修飾的eat方法,也無法D.super.eat();


免責聲明!

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



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