Calling parent method within a parent method
我有两个班,我们称之为家长班和儿童班。ParentClass有两个方法,我们称它们为FirstMethods和SecondMethods。ChildClass继承ParentClass并实现FirstMethod。ParentClass实现这两个方法。这是我的问题。在我的parentclass中,在secondmethods旁边,我想调用firstmethods,但是当我使用[self firstmethods]时,我会跳到childclass的实现中。如果我用[super firstmethods]调用它,它会在一个超级类中调用方法(在本例中是uiview)。
那么,在目标C中,是否可以在基类的一侧调用方法?一个方法调用其他方法而不在具体的类实现中跳转?
你没有。改变你的设计。
为了解释这一点,这里有一些代码。(我的示例使用Ruby是因为它对于几乎任何程序员都很容易阅读,但这不是一个objc问题,而是关于类和继承的问题)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
因此,类
为了解决这个问题,你需要完全避免这个问题。相反,将内部结构重构为您不重写的另一个方法。然后,您的基类和子类都可以为数据调用另一个方法。现在最酷的是,如果需要的话,您的孩子现在可以重写这个其他方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
号
在这个例子中,我们添加了一个类
这里的重点是子类保留对运行代码的控制,而不是父类。这很重要。如果您想要改变这个行为,您想要的解决方案将意味着您必须改变基类。但是,仅仅让继承变得棒极了,就可以让子类精确地定义如何使用它们的父类公开的方法,从而使您获得最大的灵活性。
如果您有ChildClass对象,那么[Self FirsteMethod]将调用ChildClass实现[Super FirsMethod]将调用ParentImplementation。