使用抽象类还是接口(Java)
“要針對接口編程,不要針對實現(xiàn)編程。”那么,在java的世界里,這里的接口指的是什么呢?無非是以下兩種實現(xiàn)方式:
方式1)抽象類(只能有一個超類)
方式2)接口Interface(可以繼承多個Interface)
?
那么何時使用抽象類,何時使用接口呢?回答這個問題,得搞清楚二者各自的優(yōu)勢。說白了是為了更好的應(yīng)對變化。
一個是接口本身的變化,一個是接口實現(xiàn)的變化。
對于Interface而言,能夠很好的應(yīng)對接口實現(xiàn)的變化,但是很難應(yīng)對接口本身的變化。一旦Interface發(fā)生變化,所有的實現(xiàn)都需要同時變化。如果實現(xiàn)類很多,那將是噩夢,甚至是不可行。
對于抽象類而言,接口本身的變化可以輕松應(yīng)對。只要在抽象類中提供默認實現(xiàn)就可以輕松增加行為。
但是,我們也要看到,抽象類的實現(xiàn)存在短處。就是實現(xiàn)類必須對抽象類忠心不二。如果需要以另一種視角來看待同一個實現(xiàn)類,就只能使用Interface了。換句話說,Interface帶來了多角度的好處。
?
Interface和抽象類并不是互斥的。你可以提供一個接口說“你可以使用這些功能”,在提供一個超類說“這是一種實現(xiàn)方式”。此時使用者應(yīng)該應(yīng)用接口類型,這樣未來的維護者就可以根據(jù)需要隨時替換新的實現(xiàn)。
轉(zhuǎn)載于:https://www.cnblogs.com/howdoyoudo/p/3326184.html
總結(jié)
以上是生活随笔為你收集整理的使用抽象类还是接口(Java)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java知识系统回顾整理01基础04操作
- 下一篇: Java中的注解--annotation