我已經(jīng)閱讀了大部分Go導(dǎo)游教程,但仍不清楚Go的界面編程模型與OOP相比如何?有人可以解釋我如何開始“去思考”嗎?我很困惑如何定義一個接口,然后基于該接口創(chuàng)建對象?Go會在編譯期間為您隱式創(chuàng)建一個具體的實現(xiàn)嗎?
3 回答

米琪卡哇伊
TA貢獻1998條經(jīng)驗 獲得超6個贊
OOP通常試圖解決的問題之一是多態(tài)性,即兩個不同類具有行為相同的實例的能力。通常在OOP中,這是通過使用繼承來完成的。基類定義其他類擴展的最小接口?;惖乃凶宇惗伎梢杂米骰?。
Go不是通過繼承而是通過接口來執(zhí)行相同的操作。接口是行為的“描述”。通過實現(xiàn)接口中描述的每種方法,由Go中的各個Type來滿足此描述。如果一個類型沒有實現(xiàn)所有的接口,那么它會自動滿足所描述的接口中的方法,可以投由編譯器自動到該接口。

ABOUTYOU
TA貢獻1812條經(jīng)驗 獲得超5個贊
傳統(tǒng)(Java)OO是關(guān)于類層次結(jié)構(gòu)的。您可以使用類,一些抽象的,一些final的和接口來對您的問題進行建模。然后,您提供實現(xiàn)。
Go使您可以走另一條路:從具體類型開始并實現(xiàn)您的邏輯。如果有用的抽象出現(xiàn)或需要:將其打包到一個接口中,并重構(gòu)您的代碼以使用此接口類型。
- 3 回答
- 0 關(guān)注
- 203 瀏覽
添加回答
舉報
0/150
提交
取消