Class extensions @interface Class () are a lot more powerful and can inject variables into the class. Categories @interface Class (Category) can\
Categories are an Objective-C language feature that let you add new methods to an existing class. Extensions are a special case of categories that let you define methods that must be implemented in the main implementation block.
Private declarations can be in class extensions, which mainly are some properties, because we have no need to declare a method before we call it.