为学IOS,进击中...之OC多态练习

打印机,实现多态.输入1,使用彩色打印机.输入2,使用黑白打印机

(一)main函数:

#import <Foundation/Foundation.h>

#import "Person.h"

#import "Printer.h"

#import "BlackPrinter.h"

#import "ColorPrinter.h"

int main(int argc, const char * argv[]) {

Person *person = [[Person alloc] init];

Printer *printer1 = [[BlackPrinter alloc] init];

Printer *printer2 = [[ColorPrinter alloc] init];

NSInteger a;

NSLog(@"输入1和2调换打印机");

scanf("%ld",&a);

if (a == 1) {

[person print:printer1];

}

else

[person print:printer2];

return 0;

}

(二)Printer类

#import <Foundation/Foundation.h>

@interface Printer : NSObject

- (void)doPrint;

@end

#import "Printer.h"

@implementation Printer

- (void)doPrint{

NSLog(@"打印机实现了打印");

}

@end

(三)Person类

#import <Foundation/Foundation.h>

#import "Printer.h"

@interface Person : NSObject

- (void)print:(Printer *)printer;

@end

#import "Person.h"

@implementation Person

- (void)print:(Printer *)printer{

[printer doPrint];

}

@end

(四)ColorPrinter类

#import "Printer.h"

@interface ColorPrinter : Printer

@end

#import "ColorPrinter.h"

@implementation ColorPrinter

- (void)doPrint{

NSLog(@"彩色打印机实现了打印");

}

@end

(五)BlackPrinter与ColorPrinter类相似,此处省略.

到此,就解决了这个简单的多态问题

时间: 2024-10-05 05:07:39

为学IOS,进击中...之OC多态练习的相关文章

为学IOS,进击中...之C语言指针练习

使用用指针,给你数组 int a[] = {4,34,32,13,15,66};(a + 1),输出*a + 1,*(ptr1 - 1),*ptr2);并给出求解过程. #include <stdio.h> int main(int argc, char const *argv[]) { int a[] = {4,34,32,13,15,66}; int *ptr1 = (int *)(&a + 1); /* (&a+1)代表储存数组a[]内存地址的后面一块内存的地址,*(&a

回忆15天学IOS的辛酸苦辣

在群里经常看到有小伙伴问怎么学好IOS,想往这方向转,也有看到各种培训出来在群里找工作的,也有问怎么自学好.有的都学了好几个月了,培训的也要四个月,让我想起我之前学IOS的那段难忘的时间. 之前做 .Net,错过了好多机会,失败原因很多有冲动.自卑等.在学校也算得上学霸的我一走出校门跟一起玩耍的小伙伴差距越拉越大,做 .Net待遇还不如IOS,也挺不甘心的,觉得自己的.Net水平还是不错的,毕竟给华为做外包时给我定级也给定了个3级,又由于在那半年换了几份工作,感觉自己挺失败的,痛定思痛,想着要改

寒哥教你学iOS - 经验漫谈

http://www.jianshu.com/p/cb54054d3add 寒哥教你学iOS - 经验漫谈 字数2848 阅读1896 评论19 喜欢43 顺便来个广告 iOS开发者 群173499350 给大家提供一个交流技术 也可以聊天打屁的平台 本篇文章主要讲解 4个问题 load妙用 aop面向切面编程 NSNumber Or Int @()适配64位 1 让appDelegate 减少负担 经过漫长时间的学习 你终于掌握了iOS大法 你找到了份iOS开发的工作 信誓旦旦的要开始你的co

从零开始学ios开发(十九):Application Settings and User Defaults(上)

在iphone和ipad中,有一个东西大家一定很熟悉,那个东西就是Settings. 这次要学习的东西说白了很简单,就是学习如何在Settings中对一个app的某些属性进行设置,反过来,在app中更改了一些属性值,也会反应到Settings中,这个功能很常用,实现起来也相对简单,但是内容还是比较多的. 首先还是对Settings进行一个简单的说明,虽然我们经常打开Settings,但是很少对Settings进行过仔细的研究,不过作为一名ios的开发人员,有这个必要对Settings进行一番探索

从零开始学ios开发(十二):Table Views(上)

这次学习的控件非常重要且非常强大,是ios应用中使用率非常高的一个控件,可以说几乎每个app都会使用到它,它就是功能异常强大的Table Views.可以打开你的iphone中的phone.Messages.Contacts.Mail.Settings等等等等,这些都用到了Table Views. 在Table Views中,Table是用来显示一系列数据的,每条数据占用且只占用一行(一个table cell),在ios中没有规定table到底可以容纳多少行数据,也就是说,只要内存足够多,tab

从零开始学ios开发(十八):Storyboards(下)

这篇我们完成Storyboards的最后一个例子,之前的例子中没有view之间的切换,这篇加上这个功能,使Storyboards的功能完整呈现.在Storyboards中负责view切换的东西叫做“segue”,只需对它进行简单的设置即可,一切都是傻瓜式的,无需繁琐的代码.好了,开始我们的例子吧. 1)Create a Simple Storyboard创建一个project,左边选择Application,右边选择Empty Application template(我们这里不使用Single

我也要学iOS逆向工程--函数

大家好,这篇我开始学习函数了.先学 C 函数,然后再 OC 的吧.OC 应该复杂点的吧. 然后看看汇编情况哦! 学习函数呢,肯定要弄清楚几个事情. 1.跳转地址. 2.返回地址 3.参数 4.函数获取参数 5.返回值和如何返回 6.扫尾 我们开始了哦!1个个的突破!唉,这个学习笔记是一边学一边写,不知道到底能不能边写边突破呢.小马过河,试试吧.呵呵. 1.跳转地址.因为xcode默认反汇编的时候,并没有显示出机器码,所以这里,我们要用一个命令去显示:disassemble -fmb 我们发现这样

豪哥学ios开发之登录界面

首先在ViewController.h文件中: #import <UIKit/UIKit.h> #import "SRWebSocket.h" //继承SRWebSocket.h,作为登录服务器 @interface ViewController : UIViewController<UITextFieldDelegate,SRWebSocketDelegate> //- (IBAction)SaveLogin:(id)sender; //与SB联系账号输入,密

猫猫学iOS 之微博项目实战(2)微博主框架-自己定义导航控制器NavigationController

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 一:加入导航控制器 上一篇博客完毕了对底部的TabBar的设置,这一章我们完毕自己定义导航控制器(NYNavigationController). 为啥要做自己定义呢.由于为了更好地封装代码,而且系统的UINavigationController不能满足我们的需求了,所以得自己定义. 首先,我们在NYTabBarViewCon