OC中的类簇

来源:互联网 发布:js回调函数有什么用 编辑:程序博客网 时间:2024/06/02 03:08

类簇就是具有相同接口,并提供相同功能的一组类的集合。
类簇包括两种类,一种是公共类(指的是仅公开接口的抽象类),二是具体类,这些具体类的接口,由公共类的接口抽象化。

具体类不能被直接使用,他们一般是作为公共类的子类进行实现的(也称之为私有子类)

实际上,在编码中,公共类和具体类使用方法是一样的。

实现某个类的方法并不是一定的。类簇会挑选出某种情况下最好的类去实现。

我们以NSString为例来说明:

#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        NSString *str = @"hello world";        NSLog(@"%@",[str class]);        str = [str stringByAppendingString:@"hehe"];        NSLog(@"%@",[str class]);        str = [NSString stringWithUTF8String:"hello"];        NSLog(@"%@",[str class]);    }    return 0;}

输出结果是:
这里写图片描述

从结果我们可以看出,对于NSString这个类,当用不同的方式去实现的时候,调用的类是不一样的,类簇会选择在此种情况下最合适的类。

1 0