Objective-C 中的協議(@protocol)和介面(@interface)的區別

sonicit發表於2014-03-13

    Objective-C 中的協議(@protocol),依照我的理解,就是C#, Java, Pascal等語言中的介面(Interface)。協議本身不實現任何方法,只是宣告方法,使用協議的類必須實現協議方法。

    Objective-C 中的介面(@interface),就是類的一個宣告,不同與C#, Java, Pascal等語言的介面。

    Objective-C 中的類必須要有介面,但不一定都要有協議。使用協議的類,必須實現協議中的方法。

    Objective-C 中的父類中如果已經使用了協議(@protocol),並實現了協議中的方法,那麼其子類就要新增相同的協議(@protocol),也不需要再重複實現協議中的方法,除非必要。這和C#, Java, Pascal等語言中的介面(Interface)使用方法一致。

相關文章