博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多态 OC——第十天
阅读量:7195 次
发布时间:2019-06-29

本文共 1488 字,大约阅读时间需要 4 分钟。

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);

    return 0;

}

@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 allocinit];

    worker.name = @"工人";

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

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

    king.name = @"国王";

    [king work];//king可以换为父类型Person
欢迎学习本文档,未经博主允许,不得私自转载!
转自:http://blog.csdn.net/qq_31810357
你可能感兴趣的文章
Apache Thrift入门1-架构&介绍
查看>>
rabbitmq集群是否出现脑裂监控
查看>>
java synchronized关键字的用法--对象锁和类锁
查看>>
任务3 SQL语句相关问题
查看>>
c primer plus(第五版)读书笔计 第四章(3)
查看>>
文字,表情,数字常用切换
查看>>
ajax的简单实用
查看>>
用C#将Word转化成PDF 报错“由于出现意外错误,导出失败”解决方案
查看>>
ls颜色问题
查看>>
Python学习基础篇(一)
查看>>
【MySql】2.2 mysql中自增字段 auto_increment 的一些常识
查看>>
ansible 部署基于windows 2008 r2+rsync+alwaysUp(守护进程)
查看>>
精美案例展示:立体动感的视差滚动效果网站作品
查看>>
ExtJs xtype 类型
查看>>
nginx 重写详解
查看>>
No such property: GradleVersion for class: JetGradlePlugin
查看>>
HTML基础学习笔记
查看>>
Jsp JSTL 标签库
查看>>
封装Ajax 请求
查看>>
项目管理-源代码管理
查看>>