//Animal.h #import <Foundation/Foundation.h> @interface Animal : NSObject { int _age; // 不写@public,默认只能在本类和子类当中访问.间接继承. } @end //Animal.m #import "Animal.h" @implementation Animal { int _weight; // 写在.m文件中的成员变量,叫做私有成员变量.只能在本类当中访问,子类不能访问或者设置 } @end //Dog.h #import "Animal.h" @interface Dog : Animal - (void)lookHome; @end //Dog.m #import "Dog.h" @implementation Dog - (void)lookHome { _age = 1; // _weight = 9; // 私有变量,子类不能访问或者设置 NSLog(@"看家......"); } @end
.h文件中子类父类不能定义同名的变量,.m文件中子类父类可以有相同的变量名。
super调用的直接父类,直接父类没有就是爷爷类。super在对象方法中只能调用父类的对象方法,在类方法中只能调用父类的类方法。