[Objective-c 基础 - 2.4] 多态
A.对象的多种形态
1 2 #import <Foundation/Foundation.h>3 4 @interface Animal : NSObject5 - (void) eat;6 @end7 8 @interface Dog : Animal9 - (void) run; 10 @end 11 12 @interface Cat : Animal 13 14 @end 15 16 17 @implementation Animal 18 - (void) eat 19 { 20 NSLog(@"吃东西---"); 21 } 22 23 @end 24 25 @implementation Dog 26 - (void) eat 27 { 28 NSLog(@"狗狗吃东西"); 29 } 30 31 - (void) run 32 { 33 NSLog(@"狗狗跑起来了"); 34 } 35 @end 36 37 @implementation Cat 38 39 - (void) eat 40 { 41 NSLog(@"猫猫吃东西"); 42 } 43 44 @end 45 46 void feed(Animal *animal) 47 { 48 NSLog(@"开始喂动物"); 49 [animal eat]; 50 } 51 52 53 int main() 54 { 55 Animal *a = [Dog new]; 56 [a eat]; 57 Animal *c = [Cat new]; 58 [c eat]; 59 60 feed(a); 61 feed(c); 62 63 Dog *dog = (Dog *)a; 64 [dog run]; 65 66 return 0; 67 }
转载于:https://www.cnblogs.com/wvqusrtg/p/4501508.html
[Objective-c 基础 - 2.4] 多态相关推荐
- C++基础教程之多态
标题:C++基础教程之多态 关键词:C++多态,C++基础,C++教程 描述:多态按字面的意思就是多种形态.当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态. C++ 多态 多态按字面的 ...
- Objective C 基础教程
复合 使用复合可组合多个对象,使之人工协作. 会同时使用继和复合来创建自己的类. 编程中的复合就好像音乐中的作曲一样:将多个组件组合在一起配合使用. 在Objective-C中,复合是通过包含作为实例 ...
- Android基础之Java多态、继承、重载和重写的区别
[免费]全网独家:这是一份非常值得珍藏的Android知识体系!!! 一.继承(inheritance) 1.1 继承是什么 简而言之,继承就是在现有类的基础上,增加新的方法或者重写基类的方法的一种方 ...
- Python基础 ( 十 ) —— 面向对象(多态、封装、反射、动态导入)
#面向对象的三大特性 1 继承(上一章的内容) 2 多态 python本身就是多态的 3 封装 # 多态 #不同类的实例化对象,调用同一个方法(执行的逻辑不同),而不用考虑他们具体的类,例如: 字符对 ...
- C++基础继承和多态(水上飞机)
1.继承和多态基础知识 菱形继承需要用vitual关键字防止内存的重复使用,多态主要有静态多态和动态多态. 静态多态主要是在调用过程中函数的重载,在编译阶段前就确定函数地址. 动态多态实在运行阶段才确 ...
- 1023day5:class类属性方法、每次执行类属性+1、内建模块、时间装饰器wrapper、面向对象__slots__方法:限制类的属性等基础知识、正则表达式基础知识、多态鸭子类型
文章目录 一.类class 1.Python类class 属性 方法 2.类的构造方法__init__() 3.每次执行一次类的属性+1 二.模块 1.内建模块 2.第三方模块 3.定义自己的模块 三 ...
- Python基础——继承、多态
文章目录 一.slots 二.私有属性和私有方法 三.继承 1.私有属性.私有方法 2.继承的特点(多层继承) 3.新式类和经典类 四.方法的重写 五.多态 一.slots __slots__属性对应 ...
- java继承和多态_Java基础继承与多态
Java基础第九天 继承概述 引入 首先我来写两个代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15//定义学生类 class Student { public void ...
- python基础教程:多态、多继承、函数重写、迭代器详细教程
用于类的函数 issubclass(cls,class_or_tuple) 判断一个类是否继承自其他的类,如果此类cls是class或tuole中的一个派生(子类)则返回True,否则返回False ...
- Objective - C基础: 第一天 - 1. 第1, 2个OC程序
前言 前面我们已经讲完了C语言的基础, 终于进入到Objevtive - C啦, 这里我们简称为OC, OC是什么? 简单来讲, 它是一门基于C语言演变而来的一门面向对象的语言, 在C语言上添加了属 ...
最新文章
- 2022-2028年中国高粘保护膜行业市场专项调研及发展趋势分析报告
- 【Scala-spark.mlib】通过Maven工程导入Mlib库
- 专家点评Science:中英合作揭示拟南芥三萜化合物特异调控根系微生物组
- 【机器学习】集成学习之stacking
- java爬取网页数据_如何使用爬虫工具采集数据
- csh shell_一篇文章从了解到入门shell
- oracle学习小结3之索引
- 4999元起!华为Mate 40今日开启预售:搭载麒麟9000E
- 量江湖获数千万元B轮融资,提出人工智能ASM投放解决方案
- Keil5(C51,MDK)注册详细教程(2032年版本)
- CDN是什么?CDN的工作原理?使用CDN有什么优势?
- NC65新增按钮、新增按钮拦截器,某个字段制作超链接
- java 权重_java实现权重的简单算法
- word转pdf组合的图片出现灰线,如何处理
- python转换excel 列号 为数字 数字转为列号
- R语言:SVD分解求解线性方程组AX=b
- 萨姆·阿尔特曼:如何获得成功(How To Be Successful)译文
- strtus1 html5,struts1.x的入门级学习教程
- Maxima 矩阵及矢量运算 1
- Docker_03_彻底搞懂Dockerfile文件
热门文章
- 只能在栈上或者堆上创建对象
- 第二十一章流 14临时文件
- Alpha Blending a Bitmap 失败 原因
- Docker 环境的快速搭建
- mysql只能查询出1000条数据_MySQL SELECT语句中只能输出1000行数据的原因
- tableau双折线图_Tableau可视化之多变条形图
- 用户登陆_「python学习笔记」用户登陆需求实现(for/if/str知识点)
- win7台式电脑怎么连wifi_修改WiFi密码后电脑连不上网如何解决 修改WiFi密码后电脑连不上网解决方法【详解】...
- Jupiter黑客松——IPFS开发者大赛火热报名中!
- 云原生,开发者的黄金时代