黑马程序员-OC语言-继承
来源:互联网 发布:3d室内设计软件 编辑:程序博客网 时间:2024/04/30 04:30
——- ios培训、ios培训、期待与您交流! ———-
继承的表现
多个类中存在相同属性和行为时,讲这些内容抽取到一个单独的类中(父类),那么多个类无需再定义这些属性和行为了,只要继承单独的那个类就可以了.这种拥有另外一个类的属性和方法的方式成为继承.
如:B继承了A,B就成为子类,A就成为父类,B拥有A中的所有属性和方法.一个父类可以有多个子类去继承他,但是一个子类只能有唯一的一个父类.
作用以及好处:
1.子类可以直接访问父类中的属性和方法.
2.继承的出现提高了代码的复用型.
3.继承的出现让类与类之间产生了关系,提供了多态的前提.
下面通过代码体现
#import <Foundation/Foundation.h>//父类@interface Person : NSObject{ char *_name;//姓名 double _high;//身高 double _weight;//体重}-(void)run;+(void)run;-(void)setName:(char *)name;@end@implementation Person+(void)run{NSLog(@"父类中的类方法....");}-(void)run{ NSLog(@"%s 跑....",_name);}-(void)setName:(char *)name{ _name=name;}@end//警察继承了Person类就有了Person类的所有属性和方法@interface Police : Person{ char *_qiang;}+(void)catchThief;@end@implementation Police+(void)catchThief{//这个是Police中的独有的方法 NSLog(@"抓小偷...");}@end//小偷@interface Thief : Person{ char *_dao;}+(void)tou;//这个是Thief独有的方法@end@implementation Thief+(void)tou{ NSLog(@"偷东西...");}@endint main(){ Thief *t= [Thief new]; [t setName:"thief"];//t这个对象使用了SetName这个方法,因为已经继承了Person类了 Police *p=[Police new]; [p setName:"police"];//p这个对象使用了SetName这个方法,因为已经继承了Person类了 //小偷偷东西, 警察跑去抓小偷,小偷跑路 [Thief tou]; [p run]; [Police catchThief]; [Police run];//这里是用子类的类名调用了一个类方法,这个类方法是从父类中继承的; [t run]; return 0;}
关于继承的一些思考
1.多个类中如果包含公共的属性的和方法,那么可以使用继承的方法,把这些公共属性和方法封装到一个父类中.
2.子类继承了父类,本质上就是在子类中也写入了父类中的属性和方法.
3.子类想要使用父类中的类方法,用子类的类名直接调用;
0 0
- 【黑马程序员】【OC语言】继承
- 黑马程序员-OC语言-继承
- 黑马程序员-OC语言之继承
- 黑马程序员 -- OC语言 封装 继承 多态
- 黑马程序员-OC-继承
- 黑马程序员--OC继承
- 黑马程序员-------OC----继承
- 黑马程序员——OC语言------继承、多态
- 黑马程序员——OC语言——继承
- 黑马程序员****OC语言基础****继承和方法重写
- 黑马程序员--OC之继承
- 黑马程序员-OC的继承
- 黑马程序员 -- OC语言 Autorelease
- 黑马程序员 -- OC 语言 Block
- 黑马程序员 -- OC语言 Foundation
- 【黑马程序员】【OC语言】多态
- 黑马程序员-OC语言-封装
- 黑马程序员-OC语言-多态
- 文章标题
- 如何快速让Dreamweaver CS5支持Less高亮及自动补全
- Ext.js5重新配置的表格(动态建立列和仓库)(18)
- Learn in FCC(2)
- Vi&Vim使用技巧
- 黑马程序员-OC语言-继承
- ios7 push/pop转场动画
- ffmpeg实例muxer/demuxer小结
- 好吧。。虽然A题能力不行。但是我还是有想法的。。QAQ不知道可不可行。
- iOS开发,初探离屏渲染
- java设计模式-单例模式
- nginx的gzip压缩功能的配置
- 快速排序
- 先验分布、后验分布、共轭先验分布