gpt4 book ai didi

objective-c - 理解抽象父类(super class) NSNumber

转载 作者:太空狗 更新时间:2023-10-30 04:02:03 24 4
gpt4 key购买 nike

我正在读一些关于 objective C 的书,他们在那里说 NSNumber 是一个 abstract superclass我们可以使用的许多子类

因此,“当我们调用 NSNumber 中的方法时,会使用相应的子类”。

这不符合我所知道的其他一些规则:

如果 superclass Asubclass B ,并且你在 super class A 中调用一个方法,也就是在 子类 B,你不能这样做 - 因为继承一直向上而不是向下。

那么,父类(super class)(抽象)类 NSNumber 如何使用其子类 方法??

这里的层次结构是什么?

谢谢。

最佳答案

通过class cluster完成图案。
来自文档:

The abstract superclass in a class cluster must declare methods for creating instances of its private subclasses. It’s the superclass’s responsibility to dispense an object of the proper subclass based on the creation method that you invoke—you don’t, and can’t, choose the class of the instance.

每当你用一些工厂方法创建数字时,比如 +numberWithInt: 工厂返回具体子类的实例。之后,当您调用类似 -stringValue: 的内容时,此选择器将发送到具体 NSNumber 子类的实例 - 在本例中为 int。
所以,NSNumber 工厂方法实际上不返回 NSNumber 对象——它们返回具体的子类。其他 Cocoa 类簇也是如此 - NSArrayNSDictionaryNSSet

关于objective-c - 理解抽象父类(super class) NSNumber,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20996095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com