在面試過程中,總會被問及物件導向理解得如何?感覺自己是瞭解封裝繼承多態什麼的概念的,卻不知道該如何作答。所以想問問大家對於物件導向編程思想的理解,
在編碼中注意到哪些實質了才是真正體現出來物件導向編程的思想(是把所有的東西都寫成類的形式嗎?),當然也可以直接說說自己被問及這個問題的回答,先謝謝各位解惑
回複內容:
在面試過程中,總會被問及物件導向理解得如何?感覺自己是瞭解封裝繼承多態什麼的概念的,卻不知道該如何作答。所以想問問大家對於物件導向編程思想的理解,在編碼中注意到哪些實質了才是真正體現出來物件導向編程的思想(是把所有的東西都寫成類的形式嗎?),當然也可以直接說說自己被問及這個問題的回答,先謝謝各位解惑
物件導向,我的理解是把資料和操作放在一起,並且他們有自己的生命週期。對於抽象和多態,就是對虛編程,即介面或抽象類別。對各種變化進行抽象,對應的變化就是多態。多態有一句經典的話:父類引用指向子類對象。
封裝,繼承/組合,多態。
封裝隱藏實現。
繼承重用,避免繼承過多層級用組合。
多態可以基於介面實現不同子類的不同行為
太新手了這個問題,不知道怎麼回答樓上都是正解,回答上來都應該不會扣分。
我面試別人從來不問這些虛的,很簡單的道理,如果您能正確理解物件導向的概念並能實際運用,那麼你以物件導向的思維編寫程式已經很利害了。但很可惜,對一個新手,他能回答出這些問題嗎?若能回答正確,人家也不會來這裡了。
樓主教你一個面試小技巧,如果面試的問題有一個你不知道該怎麼回答的時候,面試結束前,面試者肯定會問,您有什麼問題要問他的,這個時候你就反過來問他,如果換成他是應聘者的話,他會怎麼回答這個問題。
面試過別人,也看過面試別人的人,總體來說,你得自己會,不會你就說你會的。
物件導向開發 是一種面向未來, 面向可維護, 可擴充的開發, 對象是實現這種思想的方法
設計上:就是封裝,繼承,多態,抽象等設計模式。
效能上:穩定性,重用性,可維護性,擴充性。
推薦你看看《java編程思想》 在這裡也說不明白!
是把所有的東西都寫成類的形式嗎?
基於原型的物件導向沒有類。
物件導向,最主要是訊息傳遞。
你可以嘗試在PHP中不用class和traits,類比一個物件導向系統,應該會有更好的理解。