面试题8
41、OC中有无多重继承,怎样实现多重继承
(1)没有多重继承
(2)cocoa中全部的类都是NSObject的子类。多继承在这里是用protocl托付代理来实现的
(3)面向对象语言大部分都是单继承。如:java 、c#
(4)c++是支持多继承的
42、static全局变量与普通变量的差别,局部变量呢?函数呢?
(1)static全局变量与普通的全局变量有什么差别:static全局变量仅仅初始化一次,防止在其它文件单元中被引用。
(2)static局部变量和普通局部变量的差别有什么差别:static局部变量仅仅被初始化一次,下一次根据上一次结果值;
(3)static函数与普通函数有什么差别:static函数在内存中仅仅有一份,普通函数在每一个被调用中维持一份拷贝
43、什么是类目与延展?
(1)类目:为已知的类添加新的方法
(2)延展:通知在本类的定义里使用类目来声明私有方法
44、OC中的协议和java中的接口差别?
(1)协议定义的方法,能够设置可选实现、必须实现。java中的接口则必须所有实现
46、单例设计模式的实现。为什么要使用单例设计
static File *instance = nil;
@implementation File
//获取单例的方法
+ (id)shareInstance{
@synchronized(self){
if (instance == nil) {
instance = [[File alloc]init ];
}
}
return instance;
}
//覆写allocWithZone、copyWithZone、retain、release、autorelease方法,目的是限制这个类仅仅创建一个对象
为什么使用单例设计?
1、单例设计是用来限制一个类仅仅能创建一个对象。那么此对象中的属性能够存储全局共享的数据,全部的类都能够訪问、设置此单例中的属性数据
2、假设一个类创建的时候很的耗费性能,那么此类能够设置为单例节约性能,假设能满足需求
posted on 2017-05-29 10:46 cynchanpin 阅读(201) 评论(0) 编辑 收藏 举报