面試上海阿里體育的一道面試題: 設計模式,多態

我在簡歷裏面寫:「精通設計模式」。 面試官問我:「多態是什麼?」git


Polymorphic

多態是定義類型和實際類型, 通常是基於接口的形式實現的。github

Objective-C 相關代碼見,面試

https://github.com/BoxDengJZ/iOS_design_pattern設計模式

Objective-C 與 Swift 的 POP / VOP 又有些微妙的差別。設計


Java 實現多態有三個必要條件: 繼承,重寫, 向上轉型。對象

繼承, 在多態中必須存在有繼承關係的子類和父類。繼承

繼承是一種強耦合關係。接口

重寫, 子類對父類中某些方法進行從新定義。調用那些方法的時候,就會調用子類的方法。it

向上轉型, 多態中須要將子類的引用賦給父類對象,這是繼承的條件, 該引用能夠調用父類的方法和子類的方法。class

Objective-C 相關代碼中,也是這麼實現的。

https://github.com/BoxDengJZ/iOS_design_pattern

Objective-C 相關代碼與 Java 的條件一致。

感受語言具備相通性。

相關文章
相關標籤/搜索