3 回答

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個贊
簡單:默認(rèn)情況下,接口中的所有方法都是public。您可以通過應(yīng)用來限制private
它,但只要您不這樣做,默認(rèn)值就會生效。因此:根本沒有發(fā)生轉(zhuǎn)換。
接口主體中的方法可以聲明為公共的或私有的(第 6.6 節(jié))。如果沒有給出訪問修飾符,則該方法是隱式公共的。允許但不鼓勵在接口中為方法聲明冗余地指定 public 修飾符。
(在接口中擁有私有方法的能力是在 Java 9 中引入的,因?yàn)槿藗儼l(fā)現(xiàn) Java 8 的默認(rèn)方法通常需要擁有這些默認(rèn)方法可以使用的私有方法,而不會使這些輔助方法公開可見)

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個贊
默認(rèn)修飾符是公共的,因?yàn)檫@是定義接口聲明的方式: https ://docs.oracle.com/javase/tutorial/java/IandI/interfaceDef.html
如果你問這背后的原因,我認(rèn)為定義接口的目的是確保所有實(shí)現(xiàn)類的接口,這意味著所有實(shí)現(xiàn)類都有明確的約定,它們需要提供哪些公共可訪問方法.
向接口添加私有方法并不能滿足這個主要目的,而且似乎更像是一種實(shí)現(xiàn)提示。私有和抽象方法是對接口的后期添加。
添加回答
舉報