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、如果一个类创建的时候非常的耗费性能,那么此类可以设置为单例节约性能,如果能满足需求