java中為什么接口中的屬性都默認(rèn)為static和final

1)為什么接口中的屬性都默認(rèn)為static和final?Sun公司當(dāng)初為什么要把java的接口設(shè)計發(fā)明成這樣?【新手可忽略不影響繼續(xù)學(xué)習(xí)】馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號: 73203。
答:馬克-to-win:接口中如果可能定義非final的變量的話,而方法又都是abstract的,變量的修改就需要實(shí)現(xiàn)類來完成。馬克-to-win,這樣一來就有悖于Sun 公司開始設(shè)計interface的初衷。interface就像一個合同,規(guī)定后來的類A和B,都按照這個合同來做事,怎么能誰想怎么改就怎么改?另外,為什么必須為static呢?馬克-to-win,這樣,未來的子類的static方法也能訪問到它,可以最大限度的發(fā)揮接口屬性的功能。