我问这个问题是为了看看我对面向对象如何工作的理解是否正确。假设我有一个抽象超类,它有几个方法,都有某种实现。
@interface SuperClass : UIViewController
- (void)methodOne;
// Other public stuff
@end
…………
@implementation SuperClass
- (void)methodOne
{
//some implementation
}
- (someObject *)objectMethod
{
//more implementation
}
@end
然后,如果我正在实现它的子类:
@interface SubClass : SuperClass
@end
…………
@implementation SubClass
- (void)methodOne
{
// override method implementation code
}
@end
那么从上面的例子来看,如果我创建一个视图控制器,它是一个 SubClass 的类,它本质上会不会创建一个 SubClass 对象并自动添加所有 SuperClass 方法的实现?我的想法是,如果预处理器运行时,它是否采用任何未在子类中被覆盖的方法,而只是将超类代码方法放入该类以供使用?在这种情况下,我只覆盖了超类中的“methodOne”方法,而单独留下了“objectMethod”方法。这是否意味着我的子类将利用新的覆盖的“methodOne”实现并使用超类的“objectMethod”实现?
非常感谢!如果我需要澄清一些事情,请告诉我。