MST

星途 面试题库

面试题:Objective-C中方法重写的基本语法要求有哪些

在Objective-C的类继承体系中,阐述方法重写的基本语法规则,例如方法签名、访问修饰符等方面的要点,并举例说明。
40.0万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试

方法重写基本语法规则

  1. 方法签名:在子类中重写父类方法时,方法的名称、参数列表和返回值类型必须与父类中被重写的方法完全一致。
  2. 访问修饰符:在Objective - C中,访问修饰符(@public@protected@private)对于方法重写没有限制,子类重写的方法访问权限可以与父类相同或者更宽松,但不能更严格。例如,父类方法是@protected,子类重写后可以是@protected或者@public,但不能是@private

示例

#import <Foundation/Foundation.h>

// 父类
@interface Animal : NSObject
- (void)makeSound;
@end

@implementation Animal
- (void)makeSound {
    NSLog(@"Animal makes a sound.");
}
@end

// 子类
@interface Dog : Animal
- (void)makeSound;
@end

@implementation Dog
- (void)makeSound {
    NSLog(@"Dog barks.");
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Animal *animal = [[Animal alloc] init];
        [animal makeSound];

        Dog *dog = [[Dog alloc] init];
        [dog makeSound];
    }
    return 0;
}

在上述代码中,Dog类继承自Animal类,并对makeSound方法进行了重写。Animal类的makeSound方法输出“Animal makes a sound.”,而Dog类重写后的makeSound方法输出“Dog barks.”。