天天看點

java抽象類面試題

前幾天見到一個面試題,覺得很有意思,因為當時我好久沒有接觸到java代碼,以至于居然懵比了......

題目是這個樣子的,請修改下面的java 代碼,并找出原因:

 abstract class Thing {

private abstract String doSomething();

}

看到這個題後,我居然連腦子都沒過,說這個抽象類的方法有問題,然後,巴拉巴拉.......面試官很明顯征戰沙場好多年,沒有當面吐槽我,我想最後兩個人一定會默默的吐槽好久,我居然那麼義正言辭,面不改色的說着錯誤的答案。

最後,面試官說,回去等通知吧,那時我還是信心滿滿,直到推開門的那一刻,我猛然想起,我的天,我好像哪裡出錯了,就是這道題出錯了......

先透漏正确的修改方法,就是将private 去掉。

原因是abstract 類主要就是為了滿足繼承,而當有了private 時就代表着這個方法被私有化,不能被繼承,是以它的出現,不滿足abstract類出現的邏輯性.

然後就是比較一下abstract類與interface的差別,一定要注意,interface 是一個特殊存在的abstract,也就是interface滿足的,abstract類都滿足,此時我已經是淚流滿面,回想一下我對面試官們說了些什麼,真是句句大臉,果真不能這樣輕視java的基礎,以此為鑒,還是要好好學習,從零做起,要不項目做的再多也會......哎,一把辛酸淚