黑马程序员技术交流社区
标题:
OC中类的继承、派生和重写
[打印本页]
作者:
562413895@qq.co
时间:
2015-7-25 09:45
标题:
OC中类的继承、派生和重写
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
}
作者:
skywan
时间:
2015-7-25 12:45
分类总结了,又学习了
作者:
Foreversidy夏末
时间:
2015-7-25 12:54
学习学习
作者:
408205555
时间:
2015-7-25 19:17
学习了。。。。
作者:
norwood
时间:
2015-7-25 21:23
eslf,比较注重细节的我
作者:
原晓桢
时间:
2015-7-25 22:09
有一些人,他们赤脚在你生命中走过,眉眼带笑,不短暂,也不漫长。却足以让你体会幸福,领略痛楚,回忆一生。
作者:
小林儿
时间:
2015-7-25 22:19
谢谢你很受用!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2