继承
子类继承父类的属性和方法
//派生的概念:子类自定义的属性和方法
//继承的作用:在子类中可省略父类中含有的属性和方法
//属性的权限:
@private : 私有权限
@protected: 保护权限,(默认)
@public: 公有权限
//属性权限表:
类内 类外 继承关系
@private 可以 不可以 不可以
@protected 可以 不可以 可以
@public 可以 可以 可以
//如果没写属性,property会自动生成private权限的属性
//如果写了属性,属性默认权限为protected
//总结:没有特殊情况,不要改权限,默认为@protected即可;因为@protected权限既确保了封装性和继承性
//继承的特性1: 子类继承父类的属性和方法
//继承的特性2: 重写
//重写的使用场合:当父类的方法不适用子类时,需重写
//重写: 父类有init,子类再生成该方法
//子类重写后,子类就不会调用父类的方法,而是调用本类的方法
多态
不同对象调用相同方法,产生不同反应
//总结实现多态的条件:
//1.继承 2.重写 3.父类对象指向子类对象
类别
给不能被继承的类扩展方法:例如:系统定制类(NSString,NSMutableString、NSArray、NSDictionary…)
//步骤
1.新建Object-C File
2.file type选择 category
3.class选择需要扩展方法的类
//匿名类别:
//1.既可以扩展属性、也可以扩展方法
//2.扩展的方法和属性外界都不能访问
//使用类别需要注意的问题
1.类别中不能添加成员变量
2.使用类别增补的方法须导入类别头文件
3.父类类别中的方法,子类也可以用
//类扩展/匿名类别
当不想对外公开一些类的方法时,我们可以使用类扩展
总结
//1.继承
//a.特性1: 子类继承父类的属性和方法
//b.特性2: 重写
//重写使用的场合:当父类方法不适用时,子类可重写
//c.属性的访问权限:@private、@protected、@public
//主要区分,属性在类内、类外、继承关系中的访问权限
//2.多态
//A.使用多态的条件:
//a. 继承;b. 重写. c.父类对象指向子类对象
//B.多态往往是通过传参的方式指向子类对象
//注意:调用方法时:不看谁调的,要看谁传的
//3.类别
//A.类别:
//a.类别概念: 给不能被继承的类扩展方法
//b.注意:类别只能扩展方法,不能扩展属性
//c.类别也具有继承性(记住可变字符串调用NSString类别方法的例子)
//B.匿名类别
//a.既可以扩展属性、也可以扩展方法
//b.扩展的方法和属性外界都不能访问