category:向现有的类中增加方法,同时提供方法的实现,现有类不需要做任何改动。protocol:(相当于Java或C#中的接口interface,当很多类都要需要类似的方法,但是方法具体实现因类的不同而不同的时候,需要用到protocol或interface,C++中不需要interface是因为C++支持多重继承,实现类似功能只需要各个类继承同一个基类即可)现有的类如果要实现protocol就需要实现其中的方法,方法实现在现有的类中,现有类需要做改动。