论oc中多多态的理解与应用

多态定义为某一类事物的多种形式的表现。

多态中父类指针指向子类对象。

多态中系统会自动监测,调用最真实的对象方法。

多态中必须要用到继承,没有继承就没有多态。

通俗的讲,多态就是吃饭时你可以用勺子,可以用叉子,也可以用筷子,但是你只有在吃饭时,才会用到这些不同的工具。

因此多态中父类可以调用子类的方法。

但是吃饭时,筷子勺子或者叉子的颜色不一样,所以你不能说吃饭颜色不一样。

因此父类指针对象不能引用子类对象特有的属性和方法。

就是这样。

时间: 2024-12-19 00:04:44

论oc中多多态的理解与应用的相关文章

java中对于多态的理解

面向对象: 类:具体的对象抽象而来,可以抽象的表示一类具有相同特征和行为的对象 对象:是由类的实例化而来,对象是类的一个实例 java中关于多态的理解 打个比方 父亲person有行为这个方法,里面包括几个动作:吃饭,睡觉,走路 父亲有三个儿子,三个儿子都继承了父亲的行为方法,所以三个儿子都有吃饭,睡觉,走路这些动作,但是三个儿子又分别有自己的动作--大儿子A会弹吉他,二儿子B会唱歌,三儿子C会打鼓 ... 1.Person person = new A(); 不是父类对象指向子类引用而是父类引

[转] iOS (OC) 中 KVC 与 KVO 理解

转自: http://magicalboy.com/kvc_and_kvo/ KVC 与 KVO 是 Objective C 的关键概念,个人认为必须理解的东西,下面是实例讲解. Key-Value Coding (KVC) KVC,即是指 NSKeyValueCoding,一个非正式的 Protocol,提供一种机制来间接访问对象的属性.KVO 就是基于 KVC 实现的关键技术之一. 一个对象拥有某些属性.比如说,一个 Person 对象有一个 name 和一个 address 属性.以 KV

Python中的多态如何理解?(转帖,让我很理解。)

Python中多态的作用 让具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容(功能)的函数.Python中多态的特点 1.只关心对象的实例方法是否同名,不关心对象所属的类型:2.对象所属的类之间,继承关系可有可无:3.多态的好处可以增加代码的外部调用灵活度,让代码更加通用,兼容性比较强:4.多态是调用方法的技巧,不会影响到类的内部设计.多态的应用场景 1. 对象所属的类之间没有继承关系调用同一个函数fly(), 传入不同的参数(对象),可以达成不同的功能 class D

OC中的多态

代码1: #import <Foundation/Foundation.h> @interface Animal : NSObject - (void)eat; @end @implementation Animal - (void)eat {     NSLog(@"Animal-eat"); } @end @interface Dog : Animal @end @implementation Dog - (void)eat {     NSLog(@"Dog

黑马程序员------OC面向对象之多态

-----iOS培训.Android培训.Java培训,期待与您交流----- 一.多态的基本概念 多态(Polymorphism)按字面的意思就是"多种状态".在面向对象语言中,接口的多种不同的实现方式即为多态.引用Charlie Calverts对多态的描述--多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自"Delphi4 编程技术内幕").简单的说,就是一句话:允许将

Java中的继承、封装、多态的理解

Java中的继承.封装.多态 继承的理解: 1.继承是面向对象的三大特征之一,也是实现代码复用的重要手段.Java的继承具有单继承的特点,每个子类只有一个直接父类. 2.Java的继承通过extends关键字来实现,实现继承的类被称为子类,被继承的类称为父类(有的也称其为基类.超类),父类和子类的关系,是一种一般和特殊的关系.就像是水果和苹果的关系,苹果继承了水果,苹果是水果的子类,水果是苹果的父类,则苹果是一种特殊的水果. 3.Java使用extends作为继承的关键字,extends关键字在

关于OC中消息转发机制的理解以及在项目中的实际应用

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">关于OC中的消息转发机制想必大家都很了解,现在来温习一下:</span> 一.什么是消息转发? @selector 是什么? 1一种类型 SEL 2代表你要发送的消息(方法), 跟字符串有点像, 也可以互转.: NSSelectorFromString()   /   NSS

Runtime of Objective-C 2-理解oc中的类和对象

1: 类Class:       typedef struct objc_class * Class;     从Class的定义可以看出,它是一个 objc_class 结构类型的指针,objc_class又是什么呢? struct objc_class { struct objc_class* isa; struct objc_class* super_class; //root的为null const char* name; long version; long info; long in

iOS开发几年了,你清楚OC中的这些东西么1

前言 几年前笔者是使用Objective-C进行iOS开发, 不过在两年前Apple发布swift的时候,就开始了swift的学习, 在swift1.2发布后就正式并且一直都使用了swift进行iOS的开发了, 之后就是对swift持续不断的学习, 近来swift3.0的发布, 更多的人会选择swift来进行iOS的开发看上去更是成为了一种趋势, 不过一个合格的iOS开发者对oc以及c语言的掌握是必不可少的技能, 本篇中主要是写一些大家平时都可能用到但是不一定知道的oc的东西 1.oc中的对象的