Ios 目标c支持的继承

Ios 目标c支持的继承,ios,inheritance,Ios,Inheritance,您好,我是objective c的新手。我正在学习objective c中的继承概念。在阅读教程时,我发现objective c支持多级继承。但无论我现在实现了什么,objective c似乎也支持分层继承。正如我们在以下代码中所看到的: @interface Shape : NSObject { CGFloat area; } @end @interface Square : Shape { CGFloat length; } @end @interface Rectan

您好,我是objective c的新手。我正在学习objective c中的继承概念。在阅读教程时,我发现objective c支持多级继承。但无论我现在实现了什么,objective c似乎也支持分层继承。正如我们在以下代码中所看到的:

@interface Shape : NSObject

{
    CGFloat area;
}
@end

@interface Square : Shape
{
    CGFloat length;
}
@end

@interface Rectangle : Shape
{
    CGFloat length;
    CGFloat breadth;
}
 @end

在这种情况下,现在请帮助我了解objective c支持的继承类型

objective c不支持多重继承。你可以参考这个链接


虽然您可以使用协议模拟多重继承的功能,但在objective c中没有对多重继承的正式支持。

多级继承是指您有几代类:

@interface Shape : NSObject
{
    CGFloat area;
}
@end

@interface Rectangle : Shape
{
    CGFloat length;
    CGFloat breadth;
}
@end

@interface Square : Rectangle
{
}
@end
在上面的示例中,基类是shape。
矩形
形状
的一种,而
正方形
矩形
的一种。
矩形
的父类是
形状
Square
的父类是
Rectangle
,它的“祖父母”类是
Shape
。 (正方形是一种特殊类型的矩形)。正方形不需要任何额外的属性。事实上,它需要的属性比矩形少。)

层次继承是父类具有多个子类的情况。例如,形状类可能有矩形、圆形和三角形的子类

Objective-C支持这两种类型的继承

多重继承是另一回事。这是一个类可以从多个父类继承特征的地方。Objective-C不支持多重继承。斯威夫特和Java在这方面也没有


(顺便说一句,术语多级继承和层次继承在行业中没有广泛使用。为了理解它们的区别,我不得不在维基百科上查找它们。我想不出一种面向对象的语言不同时支持多级继承和层次继承。)

这不是多级继承。是的,这不是多级继承,而是分层继承。是的,我一直都在使用它,任何在大量代码基础上编码的人都使用同样的东西将子类划分为子类,多级子类,它们都继承自NSObject。总之,iOS中的所有东西都是NSObject的核心