後端軟工常見面試問題 — (一)
經歷過不同的公司面試之後,察覺到在介紹完自己跟熟悉的tool以及工作經驗相關背景,也漸漸抓到面試官們喜歡問的一些問題,尤其是跟自己熟悉的tool有強烈關聯。
一方面是為了考察面試者對於工具的使用熟悉程度之外,也希望透過筆記記錄的方式來加深對於不管是工具還是coding理解程度。
以下是後端工程師面試常碰到的技術問題:
Q1. What is abstraction?
Abstraction可以理解為抽象,也屬於OOP (Object-oriented programming)語言裡四大重要特性之一。
它的特性是:
- 抽象類別無法建立物件 (Abstract class cannot build an object.)
- 抽象函數不用來處理方式 (Abstract class does not implement methods.)
用以下的生活例子來做解釋的話,會幫助在看這篇文章的人更容易理解。
在這邊,我創建的抽象類別是Human。那麼透過子類別Asian, 新增了3個不同屬性的特質,分別是姓名(name)、年齡(age)、愛吃的食物(food),然後新創的處理方法為介紹(introduce)。
由於Asian繼承了Human這個父類別的定義以及其抽象方法,所以在main類別裡面新增了兩個人分別為 a1, a2。分別把人名、年齡以及喜歡吃的食物塞入Asian這個物件裡面,那麼再透過introduce這個抽象方法來實踐出來,最後就可以得到以下的輸出結果。