封装、继承、多态

封装:封装主要的功能是将数据隐藏起来,只有此类别所属的方法,亦即实体方法(instance 
method),才能直接存取数据,所以也可以说是在保护数据,不会被外界任意的存取,所以就大大的降低数据的误用,且很容易的知道错误在哪里,从而省下很多的维护成本。面向对象程序设计中的方法可分为两种,一为上述的实体方法,二为类别方法(class method)。主要的差异在于实体方法需要有一对象去引发,而类别方法可以由类别名称触发之。

多态:父类指针指向子类对象。两种表现形式:重写(父子类之间)和重载(本类中)

OC的多态体现是:重写,没有重载这种表现形式

举例说明:

@interface Parent : NSObject    //父类
- (void)simpleCall;
@end
@interface Child_A : Parent   //子类 Child_A@end
@implementation Child_A
- (void)simpleCall
{NSLog(@"我是Child_A的simpleCall方法");
}
@end
@interface Child_B : Parent     //子类Child_B@end
- (void)simpleCall
{NSLog(@"我是Child_的simpleCall方法");
}
@end
然后,我们就可以看到多态所展示的特性了:
Parent * pa=[[Child_Aalloc] init];//父类指针指向子类Child_A对象
Parent * pb=[[Child_Balloc] init];//父类指针指向子类Child_B对象
[pa simpleCall];// 显然是调用Child_A的方法
[pb simpleCall];// 显然是调用Child_B的方法
在OC中常看见的多态体现:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  {  static NSString *CellWithIdentifier = @"Cell";  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellWithIdentifier];  return cell;  }
(UITableViewCell *)指向cell子类对象

iOS开发-写给初学者:OC面向对象的三大特征相关推荐

  1. OC面向对象的三大特征(封装 继承 多态)习题2 复合

    复合:一个类中有一个成员变量是另外一个类的对象. 比如我现在要制作一台电脑,电脑需要CPU,显示器,鼠标和键盘等.这些东西的研发都是很复杂的过程.如果现在有成型的CPU等组件,就可以直接用这些组件攒一 ...

  2. C# (初入江湖)-猫狗大战(面向对象的三大特征)

    C# -写个猫狗大战(面向对象的三大特征) 效果 程序分析 资源准备 需要事先找好两个普通png格式的图(卡通猫和卡通狗) 两个gif动图,用来显示初始的 "挑衅" 三个gif的动 ...

  3. 黑马程序员_面向对象的三大特征

    ---------------------- ASP.Net+Android+IO开发S..Net培训.期待与您交流! ---------------------- 1.面向对象的三大特征之一:封装  ...

  4. Java-Day12 面向对象的三大特征之封装、继承,单例模式(饿汉式、懒汉式)、方法重写 (覆盖)、注解 (annotation)、super关键字、对象的创建流程超详细

    目录 1. 面向对象的三大特征之封装 1.1 封装的含义 1.2 封装的目的 1.3 封装的优点 1.4 封装的实现过程 1.5 拓展知识:JavaBean 2. 面向对象的三大特征之继承 2.1 继 ...

  5. python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)

    面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...

  6. 允许使用抽象类类型 isearchboxinfo 的对象_Java面向对象编程三大特征 - 多态

    Java面向对象编程三大特征 - 多态 本文关键字:Java.面向对象.三大特征.多态 多态是面向对象编程的三大特征之一,是面向对象思想的终极体现之一.在理解多态之前需要先掌握继承.重写.父类引用指向 ...

  7. java五大原则_Java面向对象的三大特征和五大原则

    Java面向对象的三大特征 封装 封装(Encapsulation)是指属性私有化,根据需要提供setter和getter方法来访问属性.即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问 ...

  8. 面向对象的三大特征,封装、继承、多态的个人理解以及代码分析

    面向过程:我们以前使用的是面向过程编程,你需要清除每个实现步骤,每个步骤每行代码都要仔仔细细的编写, 不知道过程就找不到结果,找到实现过程就可以得到实现结果. 例如: 我们在外打工租房子,我们需要了解 ...

  9. 关于面向对象以及三大特征的解释

    关于面向对象以及三大特征的解释 面向对象: 在C语言编程中是面向过程而在Java编程中是面向对象的.面向过程更重要的是看重实现的具体过程,面向对象看重的是结果,不管其里面的具体过程,只看结果. 举一个 ...

最新文章

  1. 【Step By Step】将Dotnet Core部署到Docker下
  2. windows查看端口占用以及关闭相应的进程
  3. java实现简单链表
  4. fedora在此处打开终端
  5. 四大主流芯片架构(X86、ARM、RISC-V和MIPS)
  6. bzoj5017 [Snoi2017]炸弹
  7. 装扮圣诞海报气氛,你需要这些小元素!
  8. Membership、MembershipUser和Roles类
  9. Unsafe in Java
  10. 129个百度网盘资源搜索网站大全(建议收藏)
  11. mysql8忘记密码后重置密码
  12. JAVA 如何控制模拟表单提交_java后端模拟表单提交
  13. Oracle SQL脚本批量导入导出
  14. linux 类似winscp_linux 类似 winscp
  15. easyphp mysql_用EasyPHP本地搭建PHP环境 | Wopus
  16. HM编码器代码阅读(30)——帧间预测之AMVP模式(五)运动估计
  17. kubeadm创建k8s集群(1.14.2版本)
  18. 一个小脚本从小说中过滤出经常出现的人名
  19. 如何从 FastReport VCL 中将报表导出为PNG格式?
  20. LoadRunner关联详解

热门文章

  1. 中冠百年|家庭财富如何管理
  2. Collection的概念
  3. vue Pc端微信支付和支付宝支付
  4. BigDecimal 往左移动两位小数_雪人兄弟无限命移动版下载-FC雪人兄弟经典版无限命移动破解版下载...
  5. C/C++中野指针的问题
  6. 计算机游戏设计的艺术
  7. msmtp 配置php,CentOS下使用MSMTP代替Sendmail发送邮件
  8. 无法使用此Apple ID 进行更新的解决方法
  9. 七牛云 上传图片到七牛云并返回图片URL
  10. 石子游戏Kam(bzoj 1115)