sách gpt4 ăn đã đi

objective-c - 在 Objective-C 中,我是否可以重写父类用来遵守协议(protocol)的子类中的方法?

In lại 作者:搜寻专家 更新时间:2023-10-30 19:40:54 26 4
mua khóa gpt4 giày nike

示例如下。如果我设置

id delegate = [[B alloc] init];

会调用 A 类或 B 类的 doingSomething 吗?

啊啊

@protocol RandomProtocol

-(NSString*)doingSomething;

@kết thúc

@interface A : NSObject

@kết thúc

上午

#import "A.h"

@implementation A
- (NSString*) doingSomething {
return @"Hey buddy.";
}
@kết thúc

B.h

#import "A.h"

@interface B : A
@kết thúc

B.m

#import "B.h"

@implementation B

- (NSString*)doingSomething {
return @"Hey momma!";
}

@kết thúc

câu trả lời hay nhất

更明确地说,将调用 B 类的 -doingSomething 实现而不是 A 类的实现,这仅仅是因为 B 类继承自 A 类,并且从不调用 super 的实现。

如果您想从 B 的内部调用 A 的实现,您可以在 B 的 -doingSomething 方法中添加行 [super doingSomething]。

如前一个答案所述,在协议(protocol)中声明 -doingSomething 的事实在这里完全无关紧要,因为协议(protocol)的存在只是为了提供类能够做什么的编译时信息,以便开发人员自己受益。

关于objective-c - 在 Objective-C 中,我是否可以重写父类用来遵守协议(protocol)的子类中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1376796/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress