Objective-C 中的协议(@protocol)和接口(@interface)的区别

时间:2022-09-07 08:30:20

    Objective-C 中的协议(@protocol),依照我的理解,就是C#, Java, Pascal等语言中的接口(Interface)。协议本身不实现任何方法,只是声明方法,使用协议的类必须实现协议方法。

    Objective-C 中的接口(@interface),就是类的一个声明,不同与C#, Java, Pascal等语言的接口。

    Objective-C 中的类必须要有接口,但不一定都要有协议。使用协议的类,必须实现协议中的方法。

    Objective-C 中的父类中如果已经使用了协议(@protocol),并实现了协议中的方法,那么其子类就要添加相同的协议(@protocol),也不需要再重复实现协议中的方法,除非必要。这和C#, Java, Pascal等语言中的接口(Interface)使用方法一致。