1.对象方法类方法 #import <Foundation/Foundation.h> @interface Person : NSObject { // ---> 如果类方法需要掉用实例变量 需要添加 @public int _age; } - (void)test1; + (void)test2; // +(void)test2:(Person *)per; @end
@implementation Person - (void)test1 { NSLog(@"调用了test1方法"); }
+ (void)test2 // +(void)test2:(Person *)per { [self test1]; // 不能用类名去调用对象方法 ---> [per test1]; NSLog(@"调用了test2方法-%d", _age); // per ->_age; } @end
int main() { // @autoreleasepool { Person *p = [Person new]; [p test2]; // ---> [p test1]; [Person test1]; // ---> [Person test2]; } // 加 " return 0; }"
2.继承 #import <Foundation/Foundation.h> @interface Dog : Animal { int _age; double _height; }
@end
@implementation Dog - (void)test1 { NSLog(@"test1----"); [super test2]; // 不能自己调用自己 } @end /* // 程序从上往下运行,Dog找不到父类Animal的定义,需调整顺序 @interface Animal : NSObject { int _age; double _weight; } - (void)test1; + (void)test2; @end
@implementation Animal - (void)test1 { NSLog(@"test1----"); } + (void)test2 { NSLog(@"test2----"); } @end */ |