1.对象方法类方法
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
    int _age;
}
- (void)test1;
+ (void)test2;
@end

@implementation Person
- (void)test1
{
    NSLog(@"调用了test1方法");
}

+ (void)test2
{
    // 在类方法中,self代表的是类。不能用类调用对象方法test1
    // [self test1];
    // 类方法中不能访问成员变量
    // NSLog(@"调用了test2方法-%d", _age);
}
@end

int main()
{
    Person *p = [Person new];
    // 对象不能调用类方法
    // [p test2];
    
    // 类不能调用对象方法
    // [Person test1];
}

// 4处错误

2.继承
#import <Foundation/Foundation.h>

// 父类要声明在子类的前面
@interface Animal : NSObject
{
    int _age;
    double _weight;
}
- (void)test1;
+ (void)test2;
@end

@interface Dog : Animal
{
    // 子类不能拥有和父类一样的成员变量
    // int _age;
    double _height;
}

@end

@implementation Dog
- (void)test1
{
    NSLog(@"test1----");
    // 这里的super是用来调用父类对象方法的,而test2是个类方法
    // [super test2];
}
@end

@implementation Animal
- (void)test1
{
    NSLog(@"test1----");
}
+ (void)test2
{
    NSLog(@"test2----");
}
@end
// 3处错误