1、多态 
父类指针指向子类对象
 
   没有继承就没有多态
 
 
 联系前面知识才能清楚什么是多态,所以放到最后面总结小知识点,有前面的知识会对多态更好的了解,会觉得简单很多,但是看此篇博文需要有前面的基础,下面带大家看下:

封装:隐藏内部实现,稳定外部接口.

   
     
 封装就是定义类 定义属性 定义方法

属性:封装了setter
get方法 
Person.h
@property(nonatomic,retain)NSString *name,*sex;

类封装了实例变量和方法

#import

@interface Person
: NSObject

{

NSString *_name;

NSString *_sex;

int _age;


}
——————————————————————————————————————————————

@property(nonatomic,retain)NSString *name,*sex;

@property(nonatomic,assign)int age;

- (id)initWithName:(NSString *)name
sex:(NSString *)sex
age:(int)age;

-(Person *)work;

@end

==============================================
Person.m

#import "Person.h"

@implementation Person

@synthesize name
= _name,sex
= _sex,age
= _age;

- (id)initWithName:(NSString *)name
sex:(NSString *)sex
age:(int)age

{

self =
[super init];

if (self)
{

self.name =
name;

self.sex =
sex;

self.age =
age;

}

return
self;

}

- (Person *)work

{

NSLog(@"%@正在工作",self.name);

;

}

@end

2、继承:子类可以直接复用父类中的成员.子类继承父类所有方法的声明和实现
非私有的实例变量以及协议 继承是要在.h中声明一下 继承具有单根性和传递性
 继承就是代码优化公共部分交给父类
#import "Person.h"
@interface Worker
: Person
@end

#import "Person.h"
@interface King
: Person
@end

3、多态:不同对象对同一消息的不同响应.子类可以重写父类的方法

多态就是允许方法重名
参数或返回值可以是父类型传入或返回

#import "AppDelegate.h"

#import "Worker.h"

#import "Actor.h"

#import "King.h"

Worker *worker
= [[Worker alloc] init];

worker.name = @"工人";

[worker work];//worker
可以换为父类型Person

King *king
= [[King alloc]init];

king.name = @"国王";

    [king work];//king可以换为父类型Person

欢迎学习本文档,未经博主允许,不得私自转载!

最新文章

  1. JavaScript解惑记之Array.prototype.sort()
  2. java和android及IOS对接RSA加密经验
  3. BZOJ3557: [Ctsc2014]随机数
  4. JavaScript的一点自我总结
  5. Java魔法堂:注解用法详解——@Override
  6. xml velocity模板
  7. QQ上传大文件为什么这么快
  8. 动态规划——E (LIS())最长上升子序列
  9. Binary Numbers(HDU1390)
  10. leetcode Longest Valid Parentheses python
  11. 初生牛犊不怕虎 golang入坑系列
  12. 30分钟入门Java
  13. 通过运行一个tomcat容器来记录下初学docker常用的几个命令---容器篇
  14. Java实现将任何编码方式的txt文件以UTF-8编码方式转存
  15. luogu1117 优秀的拆分 (后缀数组)
  16. Android:E/Surface: getSlotFromBufferLocked: unknown buffer: 0x7f9d1b41c0
  17. 压缩跟踪Compressive Tracking(转)
  18. asiHttpRequst 超时代码判断
  19. Shell脚本开发规范
  20. Luogu 1429 平面最近点对 | 平面分治

热门文章

  1. 解析配置文件redis.conf
  2. ACM 继续畅通工程
  3. ELK学习记录一 :初识ELK
  4. 两行代码搞定Android视图扩散切换效果
  5. linux:如何指定进程运行的CPU
  6. Scala:函数式编程之下划线underscore
  7. iter 函数另类用法
  8. Eric5 for Python 3.3.3安装指南
  9. Studio 一些使用
  10. Java异常处理-----抛出处理