多态 OC——第十天

简介: 1、多态 父类指针指向子类对象    没有继承就没有多态   联系前面知识才能清楚什么是多态,所以放到最后面总结小知识点,有前面的知识会对多态更好的了解,会觉得简单很多,但是看此篇博文需要有前面的基础,下面带大家看下:封装:隐藏内部实现,稳定外部接口.
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

欢迎学习本文档,未经博主允许,不得私自转载!
目录
相关文章
|
11月前
|
传感器 机器学习/深度学习 人工智能
AI在自动驾驶汽车中的应用与未来展望
AI在自动驾驶汽车中的应用与未来展望
591 9
|
11月前
|
传感器 人工智能 监控
《数据流驱动:C++构建 AI 模型持续学习新范式》
本文探讨了如何利用C++开发基于数据流的人工智能模型持续学习系统,覆盖了从数据接入、预处理、模型训练与更新、评估监控到输出应用的全流程。文章强调了C++在处理实时数据流、确保系统实时性和效率方面的独特优势,并讨论了其在物联网、金融、工业自动化等领域的应用前景,以及未来技术发展趋势。
384 9
|
12月前
|
关系型数据库 分布式数据库 数据库
PostgreSQL+Citus分布式数据库
PostgreSQL+Citus分布式数据库
354 15
|
12月前
|
人工智能 安全 测试技术
探索AI在软件开发中的应用:提升开发效率与质量
【10月更文挑战第31天】在快速发展的科技时代,人工智能(AI)已成为软件开发领域的重要组成部分。本文探讨了AI在代码生成、缺陷预测、自动化测试、性能优化和CI/CD中的应用,以及这些应用如何提升开发效率和产品质量。同时,文章也讨论了数据隐私、模型可解释性和技术更新等挑战。
|
11月前
|
机器学习/深度学习 人工智能 安全
合合信息在视觉内容安全领域的创新与应用-应对伪造挑战的前沿进展
在2024年中国图象图形学学会青年科学家会议上,上海合合信息科技股份有限公司图像算法研发总监郭丰俊博士分享了“视觉内容安全技术的前沿进展与应用”。随着AI技术的发展,尤其是深度学习和生成对抗网络(GANs)的成熟,视觉内容伪造技术日益复杂,给传统审核手段带来挑战。郭博士介绍了合合信息在图像、视频篡改检测及人脸鉴伪等领域的创新解决方案,强调了大模型如ForgeryGPT的应用前景,并指出未来视觉内容安全将趋向多模态检测和智能化防护,以应对不断演化的伪造手段。合合信息通过自研AI算法,实现了对篡改区域的精确识别,具备较强的跨域泛化能力,已在金融、政府监管等领域广泛应用。
|
安全 Linux 虚拟化
在Linux中,Jail和Chroot有何区别?
在Linux中,Jail和Chroot有何区别?
目标如何设定:7 分钟重新认识 SMART 原则。
你有过很多目标,但都没达成。于是你找到了一种解决方案——SMART 目标管理原则。它是五个单词首字母的缩写——Specific、Measurable、Achievable、Relevant 和 Time-bound——你的目标必须是具体的、可衡量的、可达到的、和其他目标相关的、有时间限制的。
830 0
|
机器学习/深度学习 人工智能 异构计算
原来AI可以这么玩儿--数字分身
讲述基于EasyPhoto的AI写真生成示例,需要开通阿里云机器学习PAI-DSW免费试用
|
小程序 前端开发 Java
小程序项目实战-基于微信小程序的自习室系统设计与实现,可作为毕业设计(一)
小程序项目实战-基于微信小程序的自习室系统设计与实现,可作为毕业设计
|
存储 缓存 C语言
FIFO基础知识
本文介绍了什么是FIFO,FIFO的用途、功能和重要参数。最后,利用C语言数组实现了FIFO,给出了详细的程序设计。
1156 0