一个类的ivar可以成为其超类的一个实例吗?

时间:2012-08-16 21:03:20

标签: objective-c

如果ClassBClassA的子类,那么ClassB's ivars中的一个是来自ClassA的实例是否可以?对不起,如果这是一个愚蠢的问题。我发现ClassBClassA继承的方式让我感到困惑,但它可能拥有它的一个实例。

2 个答案:

答案 0 :(得分:1)

这完全没问题。一个班级甚至可以拥有自己类型的ivar。

假设你有一辆旅行车,想要为火车建模。你的Wagon类可能有两个类型Wagon的ivars。一个指向火车上的下一辆货车,另一个指向前一辆货车。

然后你可以实现Wagon的PassengerWagon子类,它将从它的超级类继承Wagon ivars。需要说明的是:如果你只想跟踪PassengerWagon实例的邻居,你也可以只在PassengerWagon而不是超类中定义ivars(类型为Wagon),但这些邻居可以是任何Wagon类型。

答案 1 :(得分:1)

是的,那很好。你可以在任何课程中使用任何类型的ivars。