美文网首页
iOS 开发 OC基础篇之类的特性

iOS 开发 OC基础篇之类的特性

作者: die_alone | 来源:发表于2016-07-11 20:01 被阅读0次

OC是面向对象的语言,面向对象程序设计中的类有三大特性:继承,封装,多态 。

封装:

封装就是对类中的一些字段,方法进行保护,不被外界所访问到。

OC中的类也有权限控制的功能,但基本不用,在实际开发中私有的只在.m文件中实现就好了,这意味只实现未声明。

继承:

继承是类中的一个重要的特性,他的出现使得我们没必要别写重复的代码,可重用性很高。

这个我感觉没什么可以说的,和Java一样。

多态:

 简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

多态对于面向对象思想来说,个人感觉是真的很重要,他对以后的编写代码的优雅方式也是起到很重要的作用,其实现在很多设计模式中大部分都是用到了多态的特性,Java中的多态特性用起来很是方便的,但是C++中就很难用了,其实多态说白了就是:定义类型和实际类型,一般是基于接口的形式实现的,还是看代码,这比较抽象。

main.png
person有个feedAnimal方法,传入的是Animal的对象。Animal有个eat方法,cat和dog 是继承于Animal的。三个都实例化,person调用feedAnimal方法传入相应的对象,打印出来的是各自的类名,这就是多态的一个表现。

多态的局限性

父类类型的对象不能直接调用子类对象特有的方法,如果必须要调用,则必须将父类对象强制转换成子类对象。

EBF92BAC-D404-4F93-92E2-DE4E4398252B.png

在Cat类中写了一个sleep方法;在main函数直接用Animal调用会报错

EBF92BAC-D404-4F93-92E2-DE4E4398252B.png

错误提示为:No visible @interface for 'LeeAnimal' declares the selector 'sleep' 未定义该方法。

so父类类型的对象不能直接调用子类对象特有的方法,如果必须要调用,则必须将父类对象强制转换成子类对象。

ps:本文仅是我的一些理解,如有错误,望指正。

相关文章

  • iOS 开发 OC基础篇之类的特性

    OC是面向对象的语言,面向对象程序设计中的类有三大特性:继承,封装,多态 。 封装: OC中的类也有权限控制的功能...

  • 面试技巧攻克(2)-Objective-C语言

    面试技术攻克(1)-iOS开发基础 面试技巧攻克(3)-OC高级特性 面试技巧攻克(4)-iOS中对象间通信机制 ...

  • 技术在于交流,知识在于收集(一)

    收集的一些iOS开发技术博客与牛人共同进步 iOS基础: OC语法基础 OC代码规范 从零学习iOS开发的15条建...

  • iOS进阶系列之基础篇

    原文地址iOS进阶系列之基础篇 概述 基础篇包含的范围较广,是一个iOS开发者必须具备的知识。包含了以下方面:OC...

  • iOS底层原理--oc

    在长期iOS开发中,oc是iOS的基础也是重中之重,相比runtime,runloop,多线程等知识都要重要的多,...

  • iOS基础之OC的特性

    1. ObjC一般要点 OC中所有对象类型的变量都必须加上"*",在ObjC中对象其实就是一个指针. ObjC中使...

  • iOS开发--OC基础

    对象方法的声明和实现 1.对象方法声明 2.对象方法实现 必须写在以@implementation开头,@end之...

  • iOS10新特性整理

    apple关于iOS10新特性介绍 iOS10新特性个人总结iOS9.3~iOS10 API的变化 (OC 加入:...

  • iOS开发OC基础之NSString篇

    创建 NSString 三种方法 NSString的属性 NSString常用方法 NSString操作方法...

  • iOS 开发 OC基础篇之常用对象

    iOS开发中,如果能了解OC对象的特性,合理的使用适合的对象,会很大程度简化代码的复杂度和代码量。 OC对象就是一...

网友评论

      本文标题:iOS 开发 OC基础篇之类的特性

      本文链接:https://www.haomeiwen.com/subject/pzjjjttx.html