先單獨說一點,讓你可以在朋友面前裝逼:介面也能被繼承,只不過是被介面繼承
對比:
1、都能包含抽象的方法,這些抽象的方法用于描述類具備的功能,不提供具體的實作(jdk1.8允許介面有一個default的實作方法)
2、介面是對事物行為的抽象,而抽象類是對事務本質的抽象;
3、介面中的變數必須給出初始值,抽象類可以不給;
4、一個類只能繼承一個抽象類,但可以實作多個介面;
5、抽象類中可以寫非抽象的方法,從而避免在子類中重復書寫它們,這樣可以提高代碼的復用性,這是抽象類的優勢;介面中只能有抽象的方法;
針對第二點和第四點舉個例幫助理解:
對于抽象類:比方說有公雞、母雞、公狗、母狗,我們可以抽象出兩個更高級的類,雞類和狗類,因為你不能又是雞又是狗,所以你只能繼承其中一個,這就是為什么抽象類只能單繼承;
對于介面:眾所周知,雞都會唱、跳、rap,于是,我們可以把這些雞的基本操作抽象成介面A,而有的雞通過練習兩年半可能學會打籃球,那么對于這種雞的高端操作我們可以再抽象出一個介面B,重點來了,對于常規雞,這種雞只會唱跳rap,所以只需要實作介面A;那對于一些高端雞,這種雞既會唱跳rap又會打籃球,我們就同時實作介面A和介面B,這就是為什么介面可以多實作,skr~;
我話說完
嚶~ 好緊張
skr~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/263806.html
標籤:java
上一篇:Java代理
