在iOS开发中,Category(类别)、Extension(扩展)和继承在用法和功能上有明显的区别。 1. Category(类别): * Category允许你在一个类的定义之外添加新的方法。 * 它只能用于添加方法,而不能添加成员变量。 * Category的方法会成为类类型的一部分,如果与类的方法同名,会覆盖原类的方法。 * Category在@implementation中不提供实现,编译器不会报错,但运行时调用会出错。 2. Extension(扩展): * Extension是一种特殊的分类,没有分类名字。 * Extension可以添加实例变量、方法。声明的方法和添加的成员变量是私有的,只有主类能调用,外部的类无法调用。 * 如果在Extension中没有提供实现,编译器会发出警告。 3. 继承: * 继承允许你创建一个新的类,它继承了另一个类的特性和功能。 * 子类可以增加、修改或者删除方法,并且可以增加属性。 * 子类也可以覆盖父类方法,但如果有冲突会报错。 * 子类在@implementation中不提供实现,编译器不会报错,运行调用时出错。 来说,Category主要用于为类添加额外的方法,Extension可以添加实例变量、方法和属性,而继承则允许你创建一个新的类,继承另一个类的特性和功能。在使用时需要根据实际需求和场景选择合适的方式。 [2023-11-09 17:40:23 | AI写代码神器 | 316点数解答]