课程来自慕课网Visitor.zc老师
封装
- 访问修饰符
@interface MyClass : NSObject
{
// 成员变量访问修饰符
// 默认 - @protected
// @public - 公有,在类内类外都可以使用和继承
@public
int _classInt;
// @private - 私有,在类内可以使用,类外无法使用或继承
// @pretected - 受保护,在类内可以使用,类外无法使用,可以被继承
// @package - 框架权限,在框架内相当于受保护,在框架外相当于私有
}
@property (nonatomic,strong)NSString *className;
// 方法没有访问修饰符 导入头文件并在头文件中声明方法,则可以在类外被使用
- (void)report;
@end
- 使用指向来调用类中的共有变量
int main(int argc, const char * argv[]) {
@autoreleasepool {
MyClass *mc = [[MyClass alloc] init];
mc.className = @"我的类";
// 使用指向来调用类中的公有成员变量
mc->_classInt = 1001;
[mc report];
return 0;
}
}
继承
- 父类中的私有成员变量无法被继承
- 父类中没有声明的方法无法被继承
- 父类中的方法调用了父类中的私有成员变量,子类继承了父类的方法,私有成员变量的操作依旧有效
多态
- 方法重写(修改父类中的方法)
- 不支持方法重载(函数名一样,参数返回值类型不同)
- 父类类型的变量可以接受子类类型