从父类方法调用子类的方法(Objective-c 2.0)

从父类方法调用子类的方法(Objective-c 2.0),第1张

概述我有面向对象编程的经验,但出于某种原因这种情况并不熟悉.请考虑以下 Objective-c 2.0代码: @interface A : NSObject@end@implementation A- (void) f { [self g];}@end@interface B : A@end@implementation B- (void) g { NSLog( 我有面向对象编程的经验,但出于某种原因这种情况并不熟悉.请考虑以下 Objective-c 2.0代码:
@interface A : NSObject@end@implementation A- (voID) f {    [self g];}@end@interface B : A@end@implementation B- (voID) g {    NSLog(@"called g...");}@end

这是从父类中的方法调用子类的方法的正确方法吗?如果另一个子类没有实现方法g会发生什么?也许有更好的方法来解决这个问题,就像父类A中的抽象方法一样?

解决方法 关键是在父类中有一个可以在子类中重写的方法.
@interface Dog : NSObject- (voID) bark;@end@implementation Dog- (voID) bark {    NSLog(@"Ruff!");}@end@interface Chihuahua : Dog@end@implementation Chihuahua- (voID) bark {    NSLog(@"Yipe! Yipe! Yipe!");}@end

您会看到,您的子类将使用自己的实现覆盖父方法.您可能会看到它像这样使用:

Dog *someDog = [Chihuahua alloc] init] autorelease];[someDog bark];

输出:Yipe!沮丧的声音!沮丧的声音!

总结

以上是内存溢出为你收集整理的从父类方法调用子类的方法(Objective-c 2.0)全部内容,希望文章能够帮你解决从父类方法调用子类的方法(Objective-c 2.0)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1233792.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存