objective-c
中继承和类别之间的区别是什么两者都用于子类!那么它们之间有什么区别
答案 0 :(得分:8)
虽然Category是一种向基类添加功能的好方法,但像我这样来自其他面向对象技术(如Flash)的人,对于这个与继承链的关系有点难以理解。同样的问题出现在我脑海中,我对这个主题进行了快速研究。
最后一件事是分类与它讲述自己的事情相同。它为基类添加了功能。如果你记得这一点,那就不会有任何混淆。
嗯,为了理解,让我们举个例子。假设有一个A类,B类是A类的子类。在应用程序中,B类在很多地方使用。现在,需要为A类添加更多功能,因此新类别被写为“A + newRole”。编写此类别后,新功能将添加到基类中,在本例中为A类。这意味着,所有这些类A类子类(如B类)都会自动获取功能。多数民众赞成在酷。可以直接从子类中调用类别中添加的新方法。这里唯一需要的是将Category文件导入适当的位置。
答案 1 :(得分:4)
一个类别为类添加额外的功能而根本不生成新的类,你只需要扩展它,但它没有隐含的多态性或任何类似的。
继承另一方面,它自己生成一个新类,您可以在其中添加新的实例变量,并通过polimorphism覆盖父类的行为。