category和extensions
catgory 允许你为一个已经存在的类增加方法,而不需要增加一个子类。而且不需要知道它内部具体的实现。
另外,虽然Category不能够为类添加新的成员变量,但是Category包含类的所有成员变量,即使是@private的。Category可以重新定义新方法,也可以override继承过来的方法。
Extensions 声明必须在@implementation在实现。
category和extensions的不同在于extensions可以添加属性。另外extensions添加的方法是必须要实现的。