我应该从我的子类的接口文件中的非正式协议重新声明方法吗?

时间:2018-01-08 14:22:56

标签: objective-c protocols categories

我有一个类,它是NSObject的子类。 NSObject有一个非正式协议(类别)NSComparisonMethods。现在,当我需要在我的子类中实现该协议的方法时,我应该在该子类的接口文件中重新声明它们,还是可选的,因为我的超类已经声明了它们?

1 个答案:

答案 0 :(得分:1)

接口是实现和用户之间的契约。这个合同中的子类是inhert。所以,实际上,似乎没有理由发出子类的信号。通过在界面中重新提及方法来实现。

然而,对我而言,这始终是正式的。方法的语义可以在子类中更改而不会侵犯合同。我总是重新声明子类中的每个覆盖方法。

在你的情况下,当NSObject没有实现这些方法时,重新声明肯定是正确的方法,因为语义真的会改变。