1、继承:派生类继承基类
2、基类和派生类的关系
派生类不但拥有积累的方法和属性,还拥有新增的方法和属性。
注意:
1)、基类的私有属性能被继承,不能被访问
2)、OC的继承是单继承,即一个类只能是一个父类,不能继承多个父类
3)、继承的合理性
3、方法的重写
把父类的方法重写在子类中实现,做子类该做的事。用子类调用父类的重写方法时,先调用自己类中的重写方法,若自己类中无该方法,就找父类的方法,父类还没有,就找父类的父类,还没有就往上找,直到找到基类(NSObject)为止。
4、基类继承的注意事项
1)、子类不能定义和父类同名的变量,但是可以继承父类的对象。
2)、OC类支持单一继承,不支持多继承
3)、OC类支持多层继承
5、变量的修饰符在子类的访问
变量的修饰符;public, private, protected
@public类型的变量在子类中正常访问和使用
@protected类型的变量在子类中使用,不能在其他类中使用
@private类型的变量,可以被子类继承,但是不能访问。(因为子类可以继承父类的所有的实例变量和方法,但是不能访问父类的private类型的变量和方法)
5、实例变量作用域使用注意事项
1)、在@interface @end之间声明的成员变量不做特别的说明,其默认是protected的
2)、一个类继承另一个类,就拥有了父类的所有成员变量和方法,但是私有类型的不能访问
6、OC类中的私有变量
在类的 .m文件中声明的变量为@private,只能在当前类中使用,不能被子类继承,也不能访问。
7、OC类中的私有方法
私有方法:在类的 .h 中没有声明,在 .m中实现此方法为私有方法。
注意: .h文件可以看做是对外的一个接口。
私有方法不能被子类继承和访问,当前类不能访问私有方法。但是可以用当前类的其他方法用self或者是创建类来访问私有方法。
例:
//test方法是类Person的私有方法
-(void)test{
NSLog(@"test");
}
//run方法是类Person的共有方法
-(void)run{
NSLog(@"人在跑");
//第一种:通过eslf访问私有方法test
[self test];
//第二种:通过创建类Person的对象来访问私有方法test
Person *p1=[Person new];
[p1 test];//类Person访问私有方法test
} |
|